访问外网的配置
服务器1命令行中使用:
1 | setproxy |
就可以通过代理服务器1的服务器1的端口访问外网。
NAT的方法(目前不用,仅作参考)
服务器1可以上外网;服务器2不能上外网,但是在内网与服务器1互通;下面的操作是用iptables在服务器1上对服务器2搭建一个NAT; 并且修改服务器2的默认路由,达到服务器2访问外网的目的;
服务器1
1 | iptables -t nat -A POSTROUTING -s 服务器2 -j MASQUERADE |
查看iptables:
1 | sudo iptables -t nat -L |
带检索的查看iptables:
1 | sudo iptables -t nat -L POSTROUTING --line-numbers |
删除刚刚操作之后的表项:(请根据查询的编号决定是不是1)
1 | sudo iptables -t nat -D POSTROUTING 1 |
服务器2
查看路由
1 | route -n |
增加默认路由:(这个操作可能会让ssh连接断掉)
1 | sudo route add default gw 服务器1 |
删除路由:
1 | sudo route del default gw 服务器1 |
具体实现流程:
A表示服务器1;B表示服务器2
首先用在A上iptables -t nat -A POSTROUTING -s B的地址 -j MASQUERADE;然后SSH连接B;B上用sudo route add default gw A的地址;此时SSH 会连接B失败;然后从A上用SSH连接B;此时连接的B可以通过A的NAT访问外网然后安装v2ray;然后删除路由;退出之后在A上删除刚刚的iptables表项
iptables那步的作用是搭建了A对于B开启了nat服务;B通过修改路由把数据包转发到A上,进而访问外网;
上面的方法也是一种上网方法;只不过不是很方便
配置完之后通过v2ray访问外网;
实现流程的反思
实际上可能不需要那么复杂。在能出外网的服务器1上面安装v2ray,更改配置文件保证http,socks5的代理就行了;不能连接外网的服务器通过export ALL_PROXY=socks5://服务器1的地址:端口;就可以出去了
v2ray(目前使用)
安装
通过来自https://github.com/v2fly/fhs-install-v2ray的脚本安装;
v2ray启用:
1 | sudo systemctl enable v2ray |
v2ray打开:
1 | sudo systemctl start v2ray |
v2ray关闭:
1 | sudo systemctl stop v2ray |
每次修改完配置文件之后需要重启
服务器1
配置文件
1 | { |
上述配置文件实现了socks5和http的代理;
服务器2
我在.bashrc里面最后添加了:
1 | alias setproxy="export ALL_PROXY=socks5://服务器1:端口号;echo 'You can use 'unset ALL_PROXY' to unset it '" |
使用setproxy即可通过服务器1访问外网;通过unset ALL_PROXY来修改回默认设置;
于此同时该服务器也安装了v2ray;有需求的同学可以自行配置;
使用
1 | wget www.baidu.com |
来进行连通性的测试;(不知道什么原因ping不通baidu)