背景
- 刚入门时买了两台RN DC2的机器用于建站,这两台机器网络处于能用这个阶段,但是如果需要ssh做一些操作时可能会经常会出现卡顿,时延也相对较高
- 后面又买了DMIT美西的机器,走的是cn2,使用起来明显体验好很多,因此想到使用DMIT做端口转发
现状
- 本地
Ping
RN的机器,结果如下:
- 本地
Ping
DMIT的机器,结果如下:
- DMIT
Ping
RN的结果如下:
- 从上面可以简单的看出,通过DMIT会有更好的体验,除了ping的区别,RN还会有丢包的情况,所以体验不会太好
解决方法
- 预期网络拓扑图:
iptables端口转发
- 设置
iptables
支持ip转发
vim /etc/sysctl.conf
...
net.ipv4.ip_forward=1
...
- 开启系统NAT模块
iptables -t nat -A POSTROUTING -j MASQUERADE
- 设置转发规则
# 1. 设置入规则
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 14822 -j DNAT --to-destination 148.135.*.*:22
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 7422 -j DNAT --to-destination 74.*.*.*:22
# 2. 设置出规则
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 14822 -d 148.135.*.* -j SNAT --to-source 154.17.*.*
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 7422 -d 74.12.*.* -j SNAT --to-source 154.17.*.*
- 测试ssh是否可行
-
148 节点
-
74 节点
- 持久化iptables
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
最后
因为平时会使用nvim
进行coding所以,ssh的提升,对整个开发体验还是不错的,在vps上不用担心github和这种源不通,编译好了也能高速的国际互联。