Linux下配置NAT服务器共享上网

From: http://my.oschina.net/19961998/blog/147293

Linux下配置NAT服务器共享上网


    0.   本次配置的网络的拓扑结构: 
    1.   配置IP地址 
    .   1.1 正确配置学校分配的IP使能正常上网 
    .   1.2 新增eth0别名设备eth0:0 
    .   1.3 配置后 查看一下是否配置成功: 
    2.   配置路由 
    3.   配置NAT 
    4.   大功告成 
    5.   配置客户机  (可以是windows或linux等其它系统) 


0. 本次配置的网络的拓扑结构: 
# 
#             | 
#             | 
#     ========+=============== 
#             |10.3.10.0/24 
#             | 
#             | 
#             |10.3.10.19 
#        +----+----+            +-------+        +-------+ 
#        |         |            |       |        |       | 
#        | linux   |            | win1  |        | win2  | 
#        | (NAT)   |            |       |        |       | 
#        +----+----+            +---+---+        +---+---+ 
#             |192.168.50.1         |192.168.50.2    |192.168.50.3 
#             |                     |                | 
#             |                     |                | 
#             |                     |                | 
#   ==========+=====================+================+============ 
#                    192.168.50.0/24 
# 
# 


1. 配置IP地址 
1.1 正确配置学校分配的IP使能正常上网 
1)    按学校分配的IP地址配置好Linux主机 
[~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
|   DEVICE=eth0                | 
|   BOOTPROTO=none             | 
|   HWADDR=00:1E:90:13:E0:25   | 
|   IPADDR=10.3.10.19          | 
|   NETMASK=255.255.255.0      | 
|   GATEWAY=10.3.10.254        | 
|   ONBOOT=yes                 | 
|   TYPE=Ethernet              | 
|   DNS1=211.64.120.2          | 
|   DEFROUTE=yes               | 
|   DOMAIN=168.96.1.1          | 

2)    重起网卡 
[~]# servie network restart 

note  : 经过以上的配置, Linux主机应该能够正常上网了! 

1.2 新增eth0别名设备eth0:0 
[~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0 
|   # eth0:0 必须要用''括起来: 'eth0:0'   | 
|   DEVICE='eth0:0'                              | 
|   ONBOOT=yes                                   | 
|   BOOTPROTO=static                             | 
|   IPADDR=192.168.50.1                          | 
|   NETMASK=255.255.255.0                        | 
|   USERCTL=no                                   | 



1.3 配置后 查看一下是否配置成功: 
[~]# ifconfig 
|   eth0      Link encap:Ethernet  HWaddr 00:1E:90:13:E0:25                       | 
|             inet addr:10.3.10.19  Bcast:10.3.10.255  Mask:255.255.255.0         | 
|             inet6 addr: fe80::21e:90ff:fe13:e025/64 Scope:Link                  | 
|             UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1          | 
|             RX packets:187685 errors:0 dropped:0 overruns:0 frame:0             | 
|             TX packets:137327 errors:0 dropped:0 overruns:0 carrier:0           | 
|             collisions:0 txqueuelen:1000                                        | 
|             RX bytes:134816893 (128.5 MiB)  TX bytes:56066393 (53.4 MiB)        | 
|             Interrupt:27 Base address:0xa000                                    | 

|   eth0:0    Link encap:Ethernet  HWaddr 00:1E:90:13:E0:25                       | 
|             inet addr:192.168.50.1   Bcast:192.168.50.255  Mask:255.255.255.0   | 
|             UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1          | 
|             Interrupt:27 Base address:0xa000                                    | 

2. 配置路由 
由于在配置网卡接口时, 已自动配置一定的路由, 所以我们只需查看一下其信息, 验证其 
是否已经被正确配置: 
[root ~]$ route 
 Kernel IP routing table 
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
 192.168.50.0    *               255.255.255.0   U     0      0        0 eth0 
 10.3.10.0       *               255.255.255.0   U     1      0        0 eth0 
 link-local      *               255.255.0.0     U     1002   0        0 eth0 
 default         10.3.10.254     0.0.0.0         UG    0      0        0 eth0 


3. 配置NAT 
1)    新建nat.sh脚本文件并保存在 /usr/local/nat/ 目录下: 
[~]# cat /usr/local/nat/nat.sh 
|   #!/bin/bash                                                             | 

|   # 0. 设定你的参数值                                              | 
|   EXIF='eth0'           # 这个是对外的网卡接口, 可能是'ppp0'等       | 
|   EXNET='192.168.50.0/24'       # 这个是对内的网段                      | 

|   # 底下如无需要, 请不要改动了!                               | 
|   # 1. 启动routing等                                                   | 
|   echo 1 > /proc/sys/net/ipv4/ip_forward                                | 
|   /sbin/iptables -F                                                       | 
|   /sbin/iptables -X                                                       | 
|   /sbin/iptables -Z                                                       | 
|   /sbin/iptables -F -t nat                                                | 
|   /sbin/iptables -X -t nat                                                | 
|   /sbin/iptables -Z -t nat                                                | 
|   /sbin/iptables -P INPUT   ACCEPT                                        | 
|   /sbin/iptables -P OUTPUT  ACCEPT                                        | 
|   /sbin/iptables -P FORWARD ACCEPT                                        | 
|   /sbin/iptables -t nat -P PREROUTING   ACCEPT                              | 
|   /sbin/iptables -t nat -P POSTROUTING  ACCEPT                             | 
|   /sbin/iptables -t nat -P OUTPUT       ACCEPT                                  | 

|   # 2. 载入模组                                                       | 
|   /sbin/modprobe ip_tables 2> /dev/null                                   | 
|   /sbin/modprobe ip_nat_ftp 2> /dev/null                                  | 
|   /sbin/modprobe ip_nat_irc 2> /dev/null                                  | 
|   /sbin/modprobe ip_conntrack 2> /dev/null                                | 
|   /sbin/modprobe ip_conntrack_ftp 2> /dev/null                            | 
|   /sbin/modprobe ip_conntrack_irc 2> /dev/null                            | 

|   # 3. 启动ip伪装                                                     | 
|   /sbin/iptables -t nat -A POSTROUTING -o $EXIF -s $EXNET -j MASQUERADE   | 

2)    增加可执行权限 
[~]# chmod +x /usr/local/nat/nat.sh 

4. 大功告成 
1)    Linux主机配置完成, 现在只需重新启动一下刚才的配置: 
[~]# servie network restart 
[~]# /usr/local/nat/nat.sh 

2)    为了使得开机即可运行, 可在 /etc/rc.d/rc.local 文件加入相应的命令: 
[~]# echo "/usr/local/nat/nat.sh" >> /etc/rc.d/rc.local 

5. 配置客户机(可以是windows或linux等其它系统) 
    1.   network 设定需要为:  192.168.50.0 

    2.   broadcast 设定需要为:  192.168.50.255 

    3.   netmask 设定需要为 255.255.255.0 

    4.   IP 设定需要为 192.168.50.1 ~ 192.168.50.254 之一, 且『不能重复』 

    5.   Gateway 或者要设定为你的 Linux 的对内 IP , 以我的例子来说, 就是 
    192.168.50.1 

    6.   DNS 的设定: 这个最容易出错了, 你的 DNS 设定需要是你的 ISP 给你的 DNS 
    IP, 如果你不知道的话, 可以填入 168.95.1.1 这一个中华电信的 DNS 或者是 
    139.175.10.20 这一个 SeedNet 的 DNS 即可!千万不要设定为 192.168.1.2 呦!会 
    连不出去! 


see also: 
http://www.chinaitlab.com/www/special/linux11.asp#7



1.目的: 使用ubuntu11.10 双网卡 实现局域网共享上网
2.环境: 双网卡、 ubuntu11.10 
3.网卡信息: 
3.1 内网网卡 IP 10.10.10.1 eth0
3.2 外网网卡   IP自动获取    usb0(使用的是D-LINK移动网卡或者使用手机的wifi动态绑定,本次实验使用的是wifi动态绑定)

4.操作具体步骤
4.1 ubuntu 上安装好网卡
4.2 以root身份进入ubuntu
4.3 打开 /etc/network/interfaces 文件

修改为以下内容:
[html]  view plain copy
  1. auto lo  
  2. iface lo inet loopback  
  3.   
  4. #配置内网网卡  
  5. auto eth0  
  6. iface eth0 inet static  
  7. address 10.10.10.1  
  8. netmask 255.255.255.0  

*注意:  1. lo 为本地回环 2. eth0(内网网卡)不需要配置gateway。
4.4 保存 /etc/network/interfaces 文件

4.5 打开 /etc/sysctl.conf 文件
找到#net.ipv4.ip_forward = 1 把注释去掉(打开ip 转发功能)
4.6 保存 /etc/sysctl.conf 文件

4.7 打开 /etc/rc.local 文件
4.8 将以下命令添加进去,实现NAT方式共享上网。
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

*注:以上内容需加在exit0前才能实现开机自动打开路由功能。
4.9 保存 /etc/rc.local 文件
4.10 重启ubuntu。
4.11 ubuntu重启之后,进行测试。

5.内网Client机器IP配置
IP:10.10.10.*
网关:10.10.10.1
子网掩码:255.255.255.0
DNS:和主机一样即可。

至此,内网机器可通过共享上网了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值