Linux设置IP转发
1、开启IP转发
临时方法
sysctl -w net.ipv4.ip_forward=1
或
echo 1 > /proc/sys/net/ipv4/ip_forward
永久方法
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 # 在/etc/sysctl.conf添加或更改该条目
sysctl -p /etc/sysctl.conf # 立即生效
2、iptable设置转发过滤规则
以eth2、wlan2接口举例:
- 允许接口数据转发
iptables -A FORWARD -i wlan2 -o eth2 -j ACCEPT # 允许转发ip数据报
iptables -A FORWARD -i eth2 -o wlan2 -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许转发已建立连接状态的ip数据报(限制来自eth2接口的数据,根据实际情况进行设置)
或(直接全部接口都开启转发策略)
iptables -P FORWARD ACCEPT # 更改默认转发策略为ACCEPT
- 若eth2端口为公网ip,则还需进行nat
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE # nat
iptable基础
概括:netfilter/iptables(下文简称iptables)组成Linux平台下的包过滤防火墙。
Netfilter是Linux操作系统核心层内部的一个数据包处理模块,工作在内核空间。它具有如下功能:
- 网络地址转换(Network Address Translate)
- 数据包内容修改
- 数据包过滤的防火墙功能
Iptables表、链、规则
iptables传输数据包的过程
iptables命令格式
iptables过滤条件
【参考资料】
开启转发:
iptables包过滤防火墙:
Windows设置ip转发
Windows中IP路由转发功能缺省是关闭的。
-
打开注册表编辑器。(【win+R】快捷键唤出运行面板, 输入regedit,回车)
-
在注册表编辑器中,定位以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip \Parameters
选择下面的项目:
IPEnableRouter:REG_DWORD:0x0 -
要对该计算机安装和使用的所有网络连接都启用 IP 转发,请指定值为 1。
要对该计算机安装和使用的所有网络连接都关闭 IP 转发,请指定值为 0。
验证:
Restart your system and again execute the command “netsh interface ipv4 show interface ” to verify whether IP forwarding is enabled.
注:必须以管理员或管理组成员的身份登录才能完成该过程。 默认情况下,将禁用 IP 转发。