如何通过linux共享上网

如何通过linux共享上网

环境】
路由器:
1.在arm+linux路由器平台上上运行了一个udhcpd服务来自动分配ip地址
2.添加了一条iptables命令:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
3.添加了缺省路由ppp0
4.ppp0是通过gprs拨号后的一个接口

PC机:
设置为自动分配ip地址,并且dns都设置为空


【网络拓扑图】
外网--(ppp0)路由器(eth0)----PC1



【问题】
1.这种情况应该是和家里的adsl拨号是差不多的,这样子设置有没有什么问题,有没有什么遗漏呢?

2.我在PC1机器上,是可以自动获取到ip地址的,这时候可以ping通外网的ip地址(比如www.sohu.com的ip地址),但是却不能ping通ppp0接口的ip地址,这是为什么呢?

3.虽然刚才可以ping通外网的ip地址,却不能ping www.sohu.com,好像看来是没有设置dns,我这时候把pc机的dns设置为路由器拨号后获得的dns,这时候就可以ping www.sohu.com。但是我看到家里的adsl拨号后,我的机器是不需要设置dns也可以上网的,那我这边缺少了什么呢?(是不是象dnsmasq这种dns forwarder)      
Linux上网最好设dns      
DHCP设置的时候记得在配置文件里面加上"option domain-name-server dns服务器IP地址"以楼主现在的架构直接写一个公网DNS地址就可以了

      
:)  学习中。。。      
1. 没问题

2. 是因为NAT的缘故

3. 配置DHCP服务,增设向客户机发布DNS参数      
在家里直接adsl拨号上网isp供应商会给你的节点分配一个动态的ip地址同时也会在网卡配置里面写一个dns所以不需要再分配dns地址了 但是用linux做NAT上网的话就需要在客户端绑定一个dns地址因为linux只做了NAT转发没有做DHCP 除非设置了DHCP服务同时在DHCP服务的配置文件/etc/dhcpd.conf中写一条options domain-name-servers xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx具体DNS地址可以根据楼所在当地的isp供应商提供的dns地址写入。