Windows 和 Ubuntu 的網絡能互相 ping 通之后,linux無法上網原因:①路由沒設置好,②DNS 沒設置好


  確保 Windows 和 Ubuntu 的網絡能互相 ping 通之后,如果 Ubuntu 無法上網,原因通常有 2 個:路由沒設置好,DNS 沒設置好。
  如果執行以下命令不成功,表示路由沒設置好:
$ ping 8.8.8.8
connect: Network is unreachable
如果“ping 8.8.8.8”成功,但是“ping www.baidu.com”不成功,則是 DNS 沒設置好:
$ ping www.baidu.com
ping: unknown host www.baidu.com

1、設置DNS方法

  DNS 的設置比較簡單,8.8.8.8 是好記好用的 DNS 服務器,修改 Ubuntu 中的/etc/resolv.conf 文件,
內容如下:nameserver 8.8.8.8

2、查看網絡信息與路由(route)

  假設某主機上的網絡接口配置和路由表如下:
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:C2:8D:7E
inet addr:192.168.10.223 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:420 (420.0 b)
Interrupt:10 Base address:0x10a0
eth1 Link encap:Ethernet HWaddr 00:0C:29:C2:8D:88
inet addr:192.168.56.136 Bcast:192.168.56.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:603 errors:0 dropped:0 overruns:0 frame:0
TX packets:110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:55551 (54.2 Kb) TX bytes:7601 (7.4 Kb)
Interrupt:9 Base address:0x10c0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:37 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3020 (2.9 Kb) TX bytes:3020 (2.9 Kb)
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 * 255.255.255.0 U 0 0 0 eth0
192.168.56.0 * 255.255.255.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
上述 route 命令輸出信息中各項的含義請看下表:
Destination               目標網段或者主機
Gateway                   網關地址,”*” 表示目標是本主機所屬的網絡,不需要路由
Genmask                  網絡掩碼
Flags         標記。一些可能的標記如下
             U - 路由是活動的
             H - 目標是一個主機
             G - 路由指向網關
             R - 恢復動態路由產生的表項
             D - 由路由的后台程序動態地安裝
          M - 由路由的后台程序修改
          ! - 拒絕路由
Metric        路由距離,到達指定網絡所需的中轉數
Ref          路由項引用次數
Use         此路由項被路由軟件查找的次數
Iface          該路由表項對應的輸出接口
  在上面的例子中,這台主機有兩個網絡接口:
① 一個網絡接口連到 192.168.10.0/24 網絡
② 另一個網絡接口連到 192.168.56.0/24 網絡。
  如果要發送的數據包的目的地址是 192.168.56.3,跟第一行的子網掩碼做與運算得到 192.168.56.0,與第一行的目的網絡地址不符,再跟第二行的子網掩碼做與運算得到 192.168.56.0,正是第二行的目的網絡地址,因此從 eth1 接口發送出去,由於 192.168.56.0/24 正是與 eth1 接口直接相連的網絡,因此可以直接發到目的主機,不需要經路由器轉發。如果要發送的數據包的目的地址是 202.10.1.2,跟前三行路由表條目都不匹配,那么就要按缺省路由條目,從 eth0 接口發出去,首先發往 192.168.10.1 路由器,再讓路由器根據它的路由表決定下一跳地址。

3、管理路由(route)命令

  可以使用 route 命令管理路由。
示例:
1)添加路由:首先得確定網關 IP,假設為 192.168.1.1
$ sudo route add default gw 192.168.1.1
$ ping 8.8.8.8 // 驗證
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=53 time=19.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=53 time=19.8 ms
2)刪除路由:
$ sudo route del default gw 192.168.1.1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM