ubuntu server双网卡做NAT让局域网共享上网的方法(各位大神帮我分析一下)
一、实际情况和需求:
家里有一条固定IP的光纤线路
ubuntu14.04server 服务器一台(双网卡)
无线路由器一个
工作站和手机有很多台。
请问服务器如何制作DHCP+网关 让工作站和手机进行上网?
二、目前的进展
昨天设置这台服务器耗费了好几个小时,但是没有成功,说一下昨天工作的成果
1、设置eth0和eth1两个网卡的IP地址
eth0为对外网的网卡,eth1是对内局域网的网卡
我的设置如下:
auto eth0
iface eth0 inet static
address 202.XX.XX.XXX
gateway 202.XX.XX.XXX
netmask 255.255.255.128
dns-nameservers 114.114.114.114 8.8.8.8
auto eth1
iface eth1 inet static
address 172.16.1.1
netmask 255.255.255.0
目前服务器可以正常上网,局域网内的客户电脑可以ping通172.16.1.1的网卡。
2、设置IP转发
修改/etc/sysctl.conf,添加这一行:
net.ipv4.ip_forward= 1
3、然后我设置了Iptables根据网上的教程设置如下:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j MASQUERADE
4、以上设置完毕以后重新启动系统
5、设置客户端IP地址
ip:172.16.1.5
子掩码:255.255.255.0
网关:172.16.1.1
DNS:172.16.1.1
问题就是客户端无法上网,请问各位大神,我是在哪个环节上出错了呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不能上网,如果可以ping通172.16.1.1与eth0,说明转发都已经OK,
这里不能上网,ping www.baidu.com无响应,应该是你的“5、设置客户端IP地址”中,DNS有问题,修改成“dns-nameservers 114.114.114.114 8.8.8.8”
5、设置客户端IP地址
ip:172.16.1.5
子掩码:255.255.255.0
网关:172.16.1.1
DNS:此处最好设置固定IP的光纤线路默认分发的DNS
我在ubuntu下执行 iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to 1.58.XX.XXX 语句后
为什么用iptables -L 查看 没有任何规则呢?
$ sudo iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to 1.58.xx.xxx
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
这是什么原因呢?
我的客户机是win7系统ip:172.16.1.5 ping 172.16.1.1 通过 ping 接外网的那个网卡能ping通 在本机用tracert www.163.com 显示:无法解析目标系统名称。
问题好像还是存在于内网卡与外网卡之间的IP转发。 我在启动文件中加入两条路由也未能解决此问题。 #route add -net 172.16.1.0 netmask 255.255.255.0 eth1 #route add -net 202.XX.XX.0 netmask 255.255.255.0 eth0
回复
无法解析是dns服务器的问题。能ping通那个外网网卡是说明你路由已经成功了。
添加下route看看。看哪个环节使用traceroute