Ubuntu

充當兩個介面路由器的 Ubuntu 伺服器

  • July 13, 2012

我正在嘗試使用 Ubuntu 伺服器 12.04 設置 squid 代理伺服器

我對 Ubuntu 很陌生,但我已經設法完成了一些簡單的事情。

我買了第二個 PCI 介面並設法將它安裝在伺服器上。

我的目標是將所有數據包從一個介面(或子網)轉發到另一個。我認為這是配置 squid 本身之前的第一步。

從我的 Ubuntu 伺服器上,我可以 ping 兩個子網中的設備。但是從位於子網 192.168.0.0 /24 中的筆記型電腦上,我無法 ping 通位於另一個子網 192.168.1.0/24 中的路由器。

從我的 Ubuntu 伺服器發送時,路由器和筆記型電腦都會響應 ICMP 請求。

我還在 sysctl.conf 中啟動了 net.ipv4.ip_forward=1

sudo ip route 的輸出:

default via 192.168.1.254 dev eth1 metric 100
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.200
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.200

sudo iptables -nvL 的輸出:

Chain INPUT (policy ACCEPT 339 packets, 55782 bytes) 

Chain FORWARD (policy ACCEPT 185 packets, 12382 bytes) 

Chain OUTPUT (policy ACCEPT 276 packets, 25481 bytes) 

您知道為什麼此設置不起作用嗎?我確定我錯過了一些東西。

問題是您嘗試聯繫的路由器不知道如何將數據包路由回筆記型電腦,因為它不知道 192.168.0.0/24 子網。來自筆記型電腦的數據包到達路由器,但響應數據包要麼被發送到錯誤的地方(網際網路),要麼根本不發送。

您需要通過 192.168.0.200 為路由器配置 192.168.0.0/24 的靜態路由。這樣做取決於您擁有的特定路由器,但請通過 Web 界面查看有關路由的部分。

引用自:https://serverfault.com/questions/406257