前几天在实验室做了分析路由协议的实验,使用的就是在Windows Server2000中架设软路由加另一个路由器,后来想到在宿舍里也可以架设软路由共享上网,网上查了点资料,在宿舍里还真实现了,给大家分享一下方法。
学校环境:
win下使用瑞捷4.21版认证,动态IP方式。ubuntu可使用mentohust0.4.1认证上网。学校禁止使用路由器,而且瑞捷也不能同过一般的路由器WAN口进行认证(有些路由器是使用嵌入式Linux固件的,可以刷个ddwrt或openwrt在路由器里用mentohust认证直接就共享上网了,也不用做软路由还得把好好的路由器当交换机用了)
原理:
通过DHCP自动分配IP地址,这样客户机可以不许任何配置就可以连接主机上网,使用iptables配置代理服务器实现NAT共享。
我使用的是路由器(实际上当交换机用),把主机网线连到任意一个LAN口,客户机也都连到LAN口,WAN口不用。
配置过程:
1.安装dhcp3-server:
sudo apt-get install dhcp3-server
2.修改配置文件:
(1)配置DHCP服务器网卡接口
sudo gedit /etc/default/dhcp3-server
设置INTERFACES="eth0"
(2)配置DHCP服务器参数
sudo gedit /etc/dhcp3/dhcpd.conf
在文件最后添加
####################################自定义配置开始##########################
default-lease-time 600; #指定默认的租用期限,单位:秒
subnet 192.168.0.0 netmask 255.255.255.0 { #网段+网络掩码
max-lease-time 7200; #指定最大的租用期限,单位:秒
range 192.168.0.1 192.168.0.250; #分配的IP地址范围
option subnet-mask 255.255.255.0; #子网掩码
option broadcast-address 192.168.0.255; #广播地址
option routers 192.168.0.254; #路由地址
option domain-name-servers 210.45.176.18,202.38.64.1; #DNS服务器地址
}
####################################自定义配置结束###########################
注:DNS服务器地址根据你学校的设置,或设置其他的,文章中是我学校提供的DNS。
3.给网卡eth0配置第2个IP:192.168.0.254
sudo ifconfig eth0:0 192.168.0.254 up
也可修给网卡配置文件/etc/network/interfaces添加下面内容开机自动设置:
auto eth0:0
iface eth0:0 inet static
address 192.168.0.254
netmask 255.255.255.0
因为我们绑定第2个IP是做路由的,所以网关不设置。
4.开启ip_forward(路由功能):
sudo echo "1">/proc/sys/net/ipv4/ip_forward
(在文件/etc/sysctl.conf添加net.ipv4.ip_forward = 1可以实现开机自动运行)
5.设置iptable规则:
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
(在文件 /etc/rc.local 里加入上面的几行(注意,加在 exit 0 的前面)就可以实现开机自动运行)
6.启动DHCP服务:
sudo service dhcp3-server start
小提示:
编写一个脚本可以实现自动开启DHCP和NAT,脚本示例:
#!/bin/bash
sudo ifconfig eth0:0 192.168.0.254 up
sudo echo "1">/proc/sys/net/ipv4/ip_forward
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
sudo service dhcp3-server start
用你喜欢的编辑器,这里以最简单的Gedit为例:
gedit dhcp_nat
把以上脚本内容粘贴到编辑器里并保存到你的主目录,
再执行sudo chmod a+x dhcp_nat给脚本添加可执行权限。
只要执行sudo ./dhcp_nat一个命令就可以达到给网卡绑定第2个IP,开启路由功能,开启NAT和DHCP服务器的目的。
或者把dhcp_nat复制到/usr/bin目录下,直接sudo dhcp_nat也可以。
以上方法本人在自己学校试验成功,正在和同学这么共享上网。
文中如有错误,欢迎批评指正
widows下目前还没找到有效的方法实现单网卡共享,主要是因为外网动态IP之后就不能给网卡绑定第2个IP地址了,另一方面官方的瑞捷检测到单网卡绑定2个IP和多网卡都会自动退出,而Linux下却没有这些问题。
如果有人有办法解决以上问题,欢迎与我讨论,[email protected]
欢迎转载,转载请注明来源viewtopic.php?f=116&t=299837
【教程】Ubuntu10.04单网卡+交换机做软路由共享上网方法(外网锐捷通过mentohust认证)
-
- 帖子: 22
- 注册时间: 2010-03-16 20:04
【教程】Ubuntu10.04单网卡+交换机做软路由共享上网方法(外网锐捷通过mentohust认证)
上次由 tsl0922 在 2010-12-04 10:35,总共编辑 3 次。
- 冷夜月
- 帖子: 120
- 注册时间: 2008-05-17 11:57
-
- 帖子: 1
- 注册时间: 2009-07-01 22:25
Re: 【教程】Ubuntu10.04单网卡+交换机做软路由共享上网方法(外网锐捷通过mentohust认证)
设置好了网卡的第二个ip可是为什么从同一交换机下的一台同网段的电脑ping不通呢?
xp下ping显示 Destination specified is invalid.
设好ip后ping第一个ip就可以ping通。
请问是什么问题呢?
eth0 Link encap:Ethernet HWaddr 00:21:86:60:AA:81
inet addr:125.220.132.87 Bcast:125.220.132.255 Mask:255.255.255.0
inet6 addr: 2001:250:4001:202:221:86ff:fe60:aa81/64 Scope:Global
inet6 addr: fe80::221:86ff:fe60:aa81/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1708494 errors:0 dropped:2 overruns:0 frame:0
TX packets:524676 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:760052716 (724.8 MiB) TX bytes:64734930 (61.7 MiB)
Interrupt:20 Memory:fc600000-fc620000
eth0:0 Link encap:Ethernet HWaddr 00:21:86:60:AA:81
inet addr:192.168.123.0 Bcast:192.168.123.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:20 Memory:fc600000-fc620000
xp下ping显示 Destination specified is invalid.
设好ip后ping第一个ip就可以ping通。
请问是什么问题呢?
eth0 Link encap:Ethernet HWaddr 00:21:86:60:AA:81
inet addr:125.220.132.87 Bcast:125.220.132.255 Mask:255.255.255.0
inet6 addr: 2001:250:4001:202:221:86ff:fe60:aa81/64 Scope:Global
inet6 addr: fe80::221:86ff:fe60:aa81/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1708494 errors:0 dropped:2 overruns:0 frame:0
TX packets:524676 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:760052716 (724.8 MiB) TX bytes:64734930 (61.7 MiB)
Interrupt:20 Memory:fc600000-fc620000
eth0:0 Link encap:Ethernet HWaddr 00:21:86:60:AA:81
inet addr:192.168.123.0 Bcast:192.168.123.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:20 Memory:fc600000-fc620000
-
- 帖子: 1
- 注册时间: 2014-07-25 7:56
- 系统: Ubuntu 14.04
Re: 【教程】Ubuntu10.04单网卡+交换机做软路由共享上网方法(外网锐捷通过mentohust认证)
是啊, ping不通内网的其他主机,希望楼主解答。