云服务中只有一台可以访问外网,另外几台都没有外网ip。如何让其他机器能够访问外网

1. 代理机器:可以访问外网的机器

利用goproxy 安装配置非常简单https://github.com/snail007/goproxy/blob/master/README_ZH.md#%E8%87%AA%E5%8A%A8%E5%AE%89%E8%A3%85

1
2
3
4
#安装
curl -L https://raw.githubusercontent.com/snail007/goproxy/master/install_auto.sh | bash
#启动
proxy http -t tcp -p "0.0.0.0:38080" --daemon

2. 需要访问外网的机器

vim /etc/profile 添加

1
[work@xyz ~]$vim /etc/profile

#内网机器不能上网需要配置个代理
http_proxy=172.18.142.251:38080
https_proxy=$http_proxy
ftp_proxy=$http_proxy
no_proxy=172.18.142.*,*.local,localhost,127.0.0.1
export http_proxy https_proxy ftp_proxy no_proxy

[work@xyz ~]$ source /etc/profile #即可

git配置代理:

1
2
3
4
5
6
[work@xyz ~]$ cat /home/work/.ssh/config
Host gitee.com
HostName gitee.com
User git
Port 22
ProxyCommand nc --proxy 172.18.142.251:38080 %h %p

[work@xyz ~]$chmod 600 /home/work/.ssh/config

此处参考https://www.jianshu.com/p/05e3a2959efe

但是goproxy 有个问题
非注册版本自动版本检查退出

https://github.com/snail007/goproxy/wiki/%E6%8F%90%E7%A4%BA%E8%AE%BF%E9%97%AE%E6%9B%B4%E6%96%B0%E5%A4%B1%E8%B4%A5%EF%BC%9F

建议换成tinyproxy
https://blog.csdn.net/shorile/article/details/79020927
tinyproxy nc 支持有问题,所以git的代理走https的 tinyproxy没问题