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. 配置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 文件
修改为以下内容:
*注意: 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:和主机一样即可。
至此,内网机器可通过共享上网了。
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 文件
修改为以下内容:
- auto lo
- iface lo inet loopback
- #配置内网网卡
- auto eth0
- iface eth0 inet static
- address 10.10.10.1
- 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:和主机一样即可。
至此,内网机器可通过共享上网了。