Linux 单网卡NAT共享上网

作者:wojtek 时间:2014-06-10 分类:代理 评论:评论已关闭 浏览:1657

系统:gentoo
单网卡绑定两个ip:
网卡介面接口:eth0
对内ip:192.168.0.254/24
对外ip:192.168.1.1/24

#打开路由功能
0为禁用路由功能,1为启用路由功能。
# cat /proc/sys/net/ipv4/ip_forward
# 0
# echo 1 > /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/ip_forward
# 1
想开机自动启用路由功能需要修改/etc/sysctl.conf文件
sysctl.conf文件中有一个变量默认是
net.ipv4.ip_forward = 0
修改成 net.ipv4.ip_forward = 1

方法一:
清除防火墙所有filter规则。
# iptables -F
清除防火墙所有nat规则。
# iptables -F -t nat
允许内网所有ip访问
# iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j ACCEPT
允许对所有内网访问的数据封包转发
# iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
跟踪连接
# iptables -A FORWARD -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
把所有来自内网的数据封包转发到192.168.1.1
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to 192.168.1.1

# /etc/init.d/iptables save
# /etc/init.d/iptables start
# rc-update add iptables default

# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all — 192.168.0.0/24 0.0.0.0/0

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all — 192.168.0.0/24 0.0.0.0/0
ACCEPT all — 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
.
.
.
# iptables -L -n -t nat
.
.
.
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all — 192.168.0.0/24 0.0.0.0/0 to:192.168.1.1

方法二:
# iptables -F
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

内网其他设备设置ip为:192.168.0.1/24 – 192.168.0.253/24
网关:192.168.0.254

标签:

相关推荐

评论已关闭。