Linux跳板网络配置
背景
公司配的笔记本(Windows)性能弱,于是将开发工作放在一无网台式机上(Linux).由于没有无线网卡,通过网络安装一些软件和连接公司VPN时需要一些特殊方法.
初选的方案是通过windows网络共享,但是不稳定,经常连不上并且不能共享VPN.后来更合适的方案是通过socks和http代理将笔记本当作跳板机实现.
通过一根网线将笔记本和开发机连接,分别配置IP:10.10.10.1和10.10.10.2
后来找到了CCProxy这款工具,可以将windows做为一个代理服务器,支持多种协议.
Linux代理配置
通常可以配置全局代理来实现,但部分工具不走全局代理,需要单独配置.网上的很多方法都是抄来抄去,真真假假.以下的方法都是在真实环境做过验证的.以后有更多的方法和工具使用会进行更新.
全局代理
通过这种方式配置的代理有一些局限性.
可作用于: curl git
部分应用不支持socks代理,可以配置http代理使用
全局生效
编辑/etc/profile
export all_proxy="http://10.10.10.1:808"
执行source /etc/profile
终端生效
生效
export all_proxy=socks5://10.10.10.1:1080
或
export http_proxy=socks5://10.10.10.1:1080
export https_proxy=socks5://10.10.10.1:1080
取消
unset all_proxy
单条命令使用代理: proxychains-ng
可作用于: curl git wget pip
使用全局代理时不是特别方便,可以使用proxychains4,对单条命令使用代理
首先将代理写入配置文件/etc/proxychains.conf或/etc/proxychains4.conf,可配置多条代理
apt install proxychains-ng
/etc/proxychains.conf
[ProxyList]
socks5 10.10.10.1 1080
http 10.10.10.1 808
proxychains4 [command]
在需要执行的命令前加上proxychains4
proxychains4 curl www.baidu.com
工具单独配置代理: apt npm golang ssh
apt
apt 不支持socks代理,只能配置http代理
新建或编辑/etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://10.10.10.1:808";
Acquire::https::Proxy "http://10.10.10.1:808";
npm pnpm
npm不支持socks代理,可以用http代理 配置生效后,pnpm也会生效
npm config set proxy http://10.10.10.1:808
npm config set https-proxy http://10.10.10.1:808
取消代理
npm config delete proxy
npm config delete https-proxy
golang
此处的代理不是go env中的源仓库代理(后面可能会专门出一期整合多个工具源配置的文章),而是相当于通过跳板机的代理
全局代理和proxychains都不可以用,可以在命令前指定,socks和http代理都可用
https_proxy=http://10.10.10.1:808 go mod tidy
https_proxy=socks5://10.10.10.1:1080 go install github.com/gogf/gf/cmd/gf/v2@latest
git
https连接
全局代理和proxychains都可以用作git代理
还可以通过配置git代理实现
git config --global https.proxy 'http://10.10.10.1:808'
git config --global http.proxy 'http://10.10.10.1:808'
取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
ssh连接
在通过ssh访问代理时,可以在ssh的config文件里配置转发命令,将ssh通过转发实现连接 ~/.ssh/config
Host github.com
ProxyCommand nc -X 5 -x 10.10.10.1:1080 %h %p
nc命令需要安装netcat来使用
-X 5 : 使用socks5
-x 10.10.10.1:1080 :通过指定的代理地址转