跳到主要内容

proxychains-命令行万能代理

看chatgpt-next-web项目的时候关注到的这个应用, 配置后可以使得命令行所有的请求都自动劫持, 通过代理转发. 平时要设置git的代理, 需要用git自带的配置, 但是用proxychains 则不用在意这些软件的细节.

简易实用方法:

安装后, 在/etc/proxychains.conf中配置HTTP, SOCKS4, SOCKS5 之类的ip代理, 然后就能搞定了.

执行命令的话, 需要在命令前添加 proxychains, 比如proxychains [cmd].

chatgpt-next-web

因为chatgpt有各种ip限制, 所以chatgpt-next-web提供了配置代理的方法. web请求访问到后台, 后台再通过proxychains调用代理, 由代理去调用openai的接口.

https://github.com/Yidadaa/ChatGPT-Next-Web/blob/main/Dockerfile


CMD if [ -n "$PROXY_URL" ]; then \
export HOSTNAME="127.0.0.1"; \
protocol=$(echo $PROXY_URL | cut -d: -f1); \
host=$(echo $PROXY_URL | cut -d/ -f3 | cut -d: -f1); \
port=$(echo $PROXY_URL | cut -d: -f3); \
conf=/etc/proxychains.conf; \
echo "strict_chain" > $conf; \
echo "proxy_dns" >> $conf; \
echo "remote_dns_subnet 224" >> $conf; \
echo "tcp_read_time_out 15000" >> $conf; \
echo "tcp_connect_time_out 8000" >> $conf; \
echo "localnet 127.0.0.0/255.0.0.0" >> $conf; \
echo "localnet ::1/128" >> $conf; \
echo "[ProxyList]" >> $conf; \
echo "$protocol $host $port" >> $conf; \
cat /etc/proxychains.conf; \
proxychains -f $conf node server.js; \
else \
node server.js; \
fi

github ProxyChains

https://github.com/haad/proxychains

Usage Example:

$ ssh -fN -D 4321 some.example.com
$ PROXYCHAINS_SOCKS5=4321 proxychains zsh

in this example, it will run a shell with all traffic proxied through OpenSSH’s "dynamic proxy" (SOCKS5 proxy) on localhost port 4321.

其他参考文档

How to use Proxychains with private proxies

https://medium.com/@chris.roark/how-to-use-proxychains-with-private-proxies-2bdd17d6126d

一次解决所有代理问题

https://guangchuangyu.github.io/cn/2018/09/proxychains/

它强制给定程序发起的TCP连接通过事先配置的代理。可以涵盖所有需要代理的情景。就以git为例,没有proxychains的话,就必须为每个协议(https, git, ssh)按照git文档的要求分别设置代理,过程复杂且不稳定。有了proxychains,这些完全可以不用管,当然应用场景不限于git,任何一个需要代理的命令行程序都是一样在运行的指令前面加proxychains完事。

2.4 设置ProxyChains

https://wizardforcel.gitbooks.io/daxueba-kali-linux-tutorial/content/11.html

设置账号密码

How to set username/password for proxy authentication

https://onelinerhub.com/proxychains/how-to-set-usernamepassword-for-proxy-authentication

[ProxyList]
socks4 1.2.3.4 1234 user pwd