因为一些特殊原因,我需要用到端口转发功能,这个功能是这样的,我有2台服务器:A和B,分别是2个不同IP。2台服务器各自的特点是:A网络好,性能差;B网络差,但性能强。(此处“网络”只针对大陆IP访问的网络性能)
所以我的网站放在B上,但是要通过A服务器的IP去访问B服务器上的网站。(注意,这里只是拿放网站做例子,如果只放网站的话,使用nginx做反向代理即可。如果是其他的服务,就需要使用本文章说的端口转发。)
例如:
A服务器IP:1.1.1.1
B服务器IP:2.2.2.2
通过网上找到的资料,找到设置方法如下:
首先开启机器的转发功能,有2个方法,有的系统方法1重启后会失效,有的openvz的小鸡方法二无法试用。所以可以2个方法都试试,哪个能用就用哪个。
启用端口转发
方法一:
echo 1 >/proc/sys/net/ipv4/ip_forward
方法二:编辑文件/etc/sysctl.conf
,修改net.ipv4.ip_forward = 0
为net.ipv4.ip_forward = 1
,如果这行最前面有注释,就去掉注释。如果没有这行,就在文件末尾增加这行内容。保存后执行sysctl -p
生效。
启用地址伪装
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
注意:其中的eth0一般是KVM结构的VPS的网卡接口名,如果是OPENVZ结构的VPS,一般是venet0,也有的服务器网卡名可能是其他它名称,可以使用
ifconfig
命令查看网卡接口名具体是什么。
设置转发端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 2.2.2.2
放行相应端口
iptables -I FORWARD -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD -p tcp --sport 80 -j ACCEPT
然后保存iptables规则:
service iptables save
ubuntu保存iptables的方法请参考这个文章:Ubuntu下如何永久保存iptables规则
最新评论