先删除wlan0以前的IP设置
sudo ifconfig wlan0 0 # route -n 后没有发现一个路由表项
给网络接口wlan0设置 ip地址和子网掩码, 同时激活该设备
sudo ifconfig wlan0 192.168.0.23/24 up
设置ip和子网掩码后增加了一个路由表项
目标 网关 子网掩码 标志 跃点 引用 使用 接口
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
这个路由表示可以跟局域网下的其他主机互通,但是不能和网络主机互通,比如`ping -I wlan0 baidu.com`
上面设置后还不能上外网,必须设置默认路由网关后才可以上网。
设置一个默认网关,就是当数据包不能匹配主机的任何一条数据包时候执行的路由策略,
sudo route add default gw 192.168.0.1
执行这条命令后新增一条路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
新增了后来的这条路由表项后,主机就可以访问外网主机了。
ping -I wlan0 baidu.com
总结:在Ubuntu下手动设置一个网络接口使得他可以上外网只需要两条命令:
sudo ifconfig wlan0 192.168.0.23/24 up //ip地址必须设置成和路由器局域网处于同一网段
sudo route add default gw 192.168.0.1 //默认路由一般是路由器的局域网IP地址
ifconfig,route 命令相关有用的命令
激活设备。
#ifconfig eth0 up
禁用设备。
#ifconfig eth0 down
查看指定的网络接口的配置。
#ifconfig eth0
查看所有的网络接口配置。
#ifconfig
增加一条从当前主机到指定主机192.168.0.2主机的路由,指定从wlan0口输出
sudo route add -host 192.168.0.2 dev wlan0
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 wlan0 //就是刚才加的到指定主机的规则
删除上面添加的到指定主机的路由
sudo route del -host 192.168.0.2 dev wlan0
内核 IP 路由表 路由表变成了这样 目标 网关 子网掩码 标志 跃点 引用 使用 接口 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
增加一条从当前主机到指定网络的路由
sudo route add -net 192.168.1.0/24 wlan0
删除一条到指定网络的路由
sudo route del –net 192.168.1.0/24 wlan0