乘着良心云活动,买了一台国内2核4g的轻量云,国内的服务器上不了外网是一个很头疼的问题,git,docker,npm等等都拉不了。而且这些有的仅支持http代理,有些仅支持socks代理,各种乱七八糟的也有点乱,然后在加上docker容器也要设置代理,设置全局代理还是使用宿主机代理。。。
1、v2还算是比较有意思的,同时支持http和socks5代理,而且inbounds可以有多个入站代理方式。
一份v2客户端inbounds设置:其他部分的配置如果自己不会写可以从一些第三方客户端导出。
"inbounds": [ { "tag": "proxy", "port": 1080, "listen": "127.0.0.1", //监听本机 "protocol": "socks", //socks5代理 "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] }, "settings": { "auth": "noauth", "network": "tcp,udp" } }, { "tag": "proxy-docker", "port": 1089, "listen": "172.17.0.1", //监听容器 "protocol": "socks", //socks5代理 "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] }, "settings": { "auth": "noauth", "network": "tcp,udp" } }, { "listen": "127.0.0.1", //监听本机 "port": 8080, "protocol": "http", //http代理 "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] }, "settings": { "network": "tcp,udp", "auth": "noauth" }, "tag": "http" }, { "listen": "172.17.0.1", //监听容器 "port": 8090, "protocol": "http", //http代理 "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] }, "settings": { "network": "tcp,udp", "auth": "noauth" }, "tag": "http-docker" } ]
虽然直接监听0.0.0.0可以比较方便一点,但是不太推荐,可能不需要走代理的全走了代理,浪费也容易被监控。
监听127.0.0.1,是在宿主机服务器里使用,设置http和socks代理,需要用哪个就用哪个。
监听172.17.0.1,是docker容器里使用,docker网桥默认是这个,可以使用ifconfig查看一下,也是设置http和socks代理,所有容器都可以使用这个代理。
分开监听不同代理协议,这样就可以需要用哪个协议就用哪个协议,分流也方便。
端口根据自己的需求修改。
2、linux服务器设置代理。稍微比较简单,后台跑一个v2,然后设置一下代理即可。
配置文件config.json,自己不懂写,就从一些客户端导出来就可以了,注意一下要是配置里有api相关的内容要删掉。
mkdir /root/v2ray cd /root/v2ray #拉取代码,建议自己拉到本地,在上传。直接可能无法下载。 wget https://github.com/v2fly/v2ray-core/releases/download/v5.0.3/v2ray-linux-64.zip unzip v2ray-linux-64.zip #运行,自己可以用systemd或者screen等等后台运行。 /root/v2ray/v2ray run -c /root/config.json
然后终端设置全局代理:
#添加环境变量 vim /etc/profile #添加,http和socks5这两个选一个。 export http_proxy="http://127.0.0.1:8080" export https_proxy="https://127.0.0.1:8080" #export http_proxy="socks5://127.0.0.1:1080" #export https_proxy="socks5://127.0.0.1:1080" #生效 source /etc/profile #测试,不管是http还是socks5都是ping不了的。 curl google.com
3、设置全局代理也有很多麻烦的是,比如wget,git,pip,npm,apt等等支持的代理协议不一定相同,设置全局代理之后可能出错。就可以单独设置代理:
#apt设置代理 vim /etc/apt/apt.conf 添加 Acquire::http::proxy "http://127.0.0.1:8080/"; Acquire::https::proxy "https://127.0.0.1:8080/"; #git设置代理 git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global https.proxy 'socks5://127.0.0.1:1080' # 使用 git config --global --unset http.proxy git config --global --unset https.proxy # 取消 #wget设置代理 vim /etc/wgetrc #添加 https_proxy = http://127.0.0.1:8080 http_proxy = http://127.0.0.1:8080
4、docker容器走代理,设置全局代理的方法也有一些,网上相关教程比较多,就多说了。如果使用第一步的inbounds,docker就可以直接使用宿主机里的代理。
http_proxy="http://172.17.0.1:8090" https_proxy="https://172.17.0.1:8090" http_proxy="socks5://127.0.0.1:1089" https_proxy="socks5://127.0.0.1:1089"
就根据不同情况该怎么用就怎么用,比如想设置全局代理:
export ALL_PROXY='socks5://172.17.0.1:1089'
比如青龙容器,自己试过多次,自带的ql bot应该是用不了socks代理,就可以使用http代理。
比如pagermaid人行字走机器人,docker一键拉下来所有依赖很方便,也不用把自己服务器搞的乱七八糟的。但是这个机器人不支持htttp代理,所以只能使用socks5代理,修改config.yml配置文件添加socks5代理即可。。
小白看得似懂非懂,请问有成体系的教程吗,谢谢
一个系列的教程都写的话要写很多很多。哪里不了解的可以姿势群聊交流。然后再慢慢写。
简单来说就是主机监听127.0.0.1,docker容器监听172.17.0.1
clash 可以代理吗,想用容器代理到本机的clash上一直没有成功
clash也是同理,docker里要代理,clash就要设置代理监听172.17.0.1。宿主机要代理clash就要设置代理监听127.0.0.1