NB狗

当前位置:?? 网站首页 >> 路由器

iptables 实现(中继、中转、端口转发)加速

1. 适用场景

经常会遇到本地访问远端服务时速度很慢。比如:ssh 或者 remotedesktop 国外的服务器、使用SS***时速度慢延迟高 等等
这时可以用一台机器做跳板,来转发你的数据
前提是这台机器 到你本地网络 和 到达远端服务器网络 状态良好。
举例:你在北京远程桌面美国的一台服务器延迟高经常掉线,而香港的vps到北京和美国的网络都很快,此时你就可以选择香港的vps来做中转。
iptables 可以简单快速的实现这一功能。

2. 开启ipv4路由转发

Linux的防火墙功能是通过netfilter实现的,iptables和firewalld则是netfileter的管理工具
这里使用iptables来实现中转功能

首先要启用 linux 的 ipv4 路由转发功能

#?echo?"net.ipv4.ip_forward?=?1"?>>?/etc/sysctl.conf#?sysctl?-p

3. 安装并启用iptables

#?yum?install?-y?iptables?iptables-services#?systemctl?enable?iptables#?systemctl?restart?iptables

4. 编写iptables规则

假设:HK-vps IP 1.1.1.1,US-vps IP 2.2.2.2,服务端口 TCP-3389

#?iptables?-t?nat?-A?PREROUTING?-p?tcp?--dport?3389?-j?DNAT?--to-destination?2.2.2.2:3389#?iptables?-t?nat?-A?POSTROUTING?-p?tcp?-d?2.2.2.2?--dport?3389?-j?SNAT?--to-source?1.1.1.1

但实际上大多数vps只会配置一个内网地址,然后再和你的公网地址一对一映射
比如 HK-vps 上 ifconfig 得到 IP 172.16.10.10
所以实际你应该这样写

#?iptables?-t?nat?-A?PREROUTING?-p?tcp?--dport?3389?-j?DNAT?--to-destination?2.2.2.2:3389#?iptables?-t?nat?-A?POSTROUTING?-p?tcp?-d?2.2.2.2?--dport?3389?-j?SNAT?--to-source?IP?172.16.10.10

然后当你需要连接 US-vps 的 tcp-3389时

#?telnet?2.2.2.2?3389

当然你也可以不必让中转端口和实际目的端口号一样
比如当你 telnet 1.1.1.1 666 实际连接的是 2.2.2.2 3389

#?iptables?-t?nat?-A?PREROUTING?-p?tcp?--dport?666?-j?DNAT?--to-destination?2.2.2.2:3389#?iptables?-t?nat?-A?POSTROUTING?-p?tcp?-d?2.2.2.2?--dport?3389?-j?SNAT?--to-source?IP?172.16.10.10

iptables规则写完后,若验证失败,检查iptables是否启动,或者查看vps安全策略是否放行匹配流量。

5. 保存iptables配置

#?service?iptables?save