iptables实现内网转发上网

配置:

# 注意:如果iptables开着,需要清空规则,否则默认规则会阻挡
# 先清空规则(慎重)
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT 
iptables -F


# 在服务端开启端口转发nat功能,表示开启 IP 数据包的转发功能,61
echo 'net.ipv4.ip_forward = 1'  >> /etc/sysctl.conf
sysctl -p

# 在服务端添加允许SNAT(源地址转换)规则,172转换为10.0.0.7出去上网,61
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.61
iptables-save

# 在其他客户端网关指向61,并配置DNS
[root@web01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
BOOTPROTO=none
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=172.16.1.7
PREFIX=24
GATEWAY=172.16.1.61
DNS1=8.8.8.8
[root@web01 ~]# cat /etc/resolv.conf 
nameserver 223.5.5.5

# 重启网卡后,ping外网测试
[root@web01 ~]# ping baidu.com 
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=127 time=8.90 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=127 time=7.52 ms

注意:

# 注意,如果公网ip是不固定的,第二步SNAT(源地址转换)换成以下设置
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE

检查:

# 检查服务端,有没有开启NAT端口转发,有没有规则
sysctl -p
iptables-save


# 检查客户端端,有没有网关,有没有路由
[root@web02 ~]# ip r
default via 172.16.1.7 dev ens36 proto static metric 101 
172.16.1.0/24 dev ens36 proto kernel scope link src 172.16.1.8 metric 101
[root@web02 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.1.7      0.0.0.0         UG    101    0        0 ens36
172.16.1.0      0.0.0.0         255.255.255.0   U     101    0        0 ens36
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇