先刪除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
參考文獻:
ubuntu網絡配置初步/etc/network
UBUNTU下使用ifconfig和route命令手動配置網絡