將 Ubuntu 設定為 Router

找一台有兩張網卡的電腦當作 Router,另外兩台分別稱做 Server 與 Client。要做的事情就是讓 Server 與 Client 可以互相溝通,而 Router 負責轉送封包。


連接網路線

將 Server、Client 與 Router 連接起來,如下

router e1451194263959 - 將 Ubuntu 設定為 Router

開啟封包轉送功能 IP forwarding

開啟以下檔案,將 ip_forward 設為 1。

sudo vim /etc/sysctl.conf
net.ipv4.ip_forward=1

輸入以下指令載入新設定。

sudo sysctl -p

檢查 ip_forward 是否成功設為 1。

cat /proc/sys/net/ipv4/ip_forward

設定 IP

Client IP為 192.168.1.1,Server IP為 192.168.2.1 而 Router 有兩個網卡 eth0 與 eth1,eth0 為 192.168.1.2,eth1 為 192.168.2.2 在Router上編輯 interfaces 檔案。

sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback

# Client
auto eth0
iface eth0 inet static
netmask 255.255.255.0
address 192.168.1.1
gateway 192.168.1.2

# Server
auto eth1
iface eth1 inet static
netmask 255.255.255.0
address 192.168.2.1
gateway 192.168.2.2

Client 與 Server也是同樣方式,設定好固定 IP 即可。


重新啟動網卡

sudo /etc/init.d/networking restart

參考資料

Show CommentsClose Comments

2 Comments

  • MA
    Posted 2018-12-05 at 23:26:44 0Likes

    你好非常感谢你的教程,有一个问题想问一下,router只有一个网卡能不能实现上述功能?

    • Jerry
      Posted 2018-12-30 at 16:32:39 0Likes

      哈囉 MA, 需要兩個網路孔喔, 如果只有一個網卡一個孔是沒辦法的

發表回應