ubuntu net 轉發

一般来说,机房的网络相比民用网络,有更高的 QoS 级别,出口质量会相对高一些。经朋友推荐,入手了阿里云 ECS(云服务器),用其中转原本直接到服务器的流量。经过几番折腾,总结出设置如下(以下均在 Ubuntu 下操作):

1、开启ip_forward
  1. echo ‘net.ipv4.ip_forward=1’ >> /etc/sysctl.conf
  2. sysctl -p
2、使用 iptables,转发TCP、UDP流量
  1. iptables -t nat -A PREROUTING -p tcp –dport 12XXX -j DNAT –to-destination 100.XX.XX.XX:12XXX
  2. iptables -t nat -A POSTROUTING -p tcp -d 100.XX.XX.XX –dport 12XXX -j SNAT –to-source 139.XX.XX.XX
  3. iptables -t nat -A PREROUTING -p udp –dport 12XXX -j DNAT –to-destination 100.XX.XX.XX:12XXX
  4. iptables -t nat -A POSTROUTING -p udp -d 100.XX.XX.XX –dport 12XXX -j SNAT –to-source 139.XX.XX.XX

其中 100.XX.XX.XX:12XXX 是目标服务器的 IP 与 端口139.XX.XX.XX 是阿里云ECS的公网 IP(若 ECS 为专用网络,则填写内网IP)。

3、保存 iptables
  1. #这里使用 iptables-persistent 保存iptables配置,也可以使用其他方法保存
  2. apt-get install iptables-persistent
  3. netfilter-persistent save

OK,这时将上网客户端的 IP 改为阿里云 ECS 的公网 IP,再去连接,流量就会通过阿里云中转,从此卡顿不再有(钞票也不再有)。

需要注意的是,并非所有机房都支持转发,各个机房网络环境也不同,具体操作过程中需要根据实际情况,找到合适的线路。

點閱: 1

Posted in: fan