Linux服务器配置路由转发
Configuring Routing and Forwarding on Linux Server
————————————————————
服务器设置路由转发
1. 在服务器上开启内核路由转发参数
临时生效:
echo "1" > /proc/sys/net/ipv4/ip_forward
永久生效,需要修改 /etc/sysctl.conf
,取消注释:
net.ipv4.ip_forward = 1
生效,执行:sysctl -p
如何检测开启成功?
执行:cat /proc/sys/net/ipv4/ip_forward
如果输出1则说明开启成功!
2. 服务器开启iptables转发
开启了ufw,去ufw修改,不要用这个
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
手动清除nat映射:
iptables -F -t nat
3. 基于UFW的端口转发
-
首先开启系统的IP转发
sudo vim /etc/sysctl.conf net.ipv4.ip_forward = 1 #增加或修改该字段,值设为1
生效
sysctl -p
-
设置防火墙的转发(修改俩个配置文件)
修改
/etc/default/ufw
:sudo vim /etc/default/ufw # DEFAULT_INPUT_POLICY="DROP" --> 改成ACCEPT试试 DEFAULT_FORWARD_POLICY="ACCEPT" #该值设为ACCEPT
注意:
# 默认规则内容都包含在 *filter…COMMIT 内
# 添加如下内容时注意 *nat…COMMIT 不能放在 *filter…COMMIT 内
# 10.0.0.0/8是内网网段,8指的是子网掩码的1个数,如255.0.0.0
-
修改
/etc/ufw/before.rules
:vim /etc/ufw/before.rules #在末尾增加以下字段 *nat :PREROUTING - [0:0] :POSTROUTING - [0:0] -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE -A POSTROUTING -s 10.0.0.0/8 -o eth1 -j MASQUERADE COMMIT
-
重启防火墙即可
sudo ufw disable sudo ufw enable