我有一個安裝了 Ubuntu 伺服器 14.04 的 ubuntu 路由器。實體網路介面有:
eth0 - 本地區域網
eth3 - WAN(網際網路)
wlan2 - 本機無線區域網路 (AP)
這是我的 /etc/network/interfaces:
# The loopback network interface
auto lo
iface lo inet loopback
# LAN interface
auto eth0
iface eth0 inet manual
# This is the Wireless section.
auto wlan2
iface wlan2 inet manual
up /sbin/ifconfig wlan0 up
# This is the Bridge section.
auto br0
iface br0 inet static
address 192.168.2.106
network 192.168.2.0
netmask 255.255.255.0
bridge_ports eth0 wlan0
# WAN network interface (NAT-ed)
auto eth3
iface eth3 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.20
dns-nameservers 8.8.8.8 4.4.4.4
路線是:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.20 0.0.0.0 UG 0 0 0 eth3
192.168.1.0 * 255.255.255.0 U 0 0 0 eth3
192.168.2.0 * 255.255.255.0 U 0 0 0 br0
我使用 UFW,這是我添加到 /etc/ufw/before.rules 中的內容:
# Configure NAT settings
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.2.0/24 -o eth3 -j MASQUERADE
COMMIT
UFW的現況:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
Anywhere ALLOW 192.168.2.0/24
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
然後我還使用 hostapd 作為 wifi AP。一切都很完美。但是...我想要做的是增加一個額外的網路卡,它將作為第二個 WAN 接口我有一個公共靜態IP。我想使用當前的 eth3 作為主要的互聯網連接,因為它是非常快速且可靠的連接,但位於 NAT 之後,因此它缺乏公共 IP。我有一個帶有公共 IP 的額外互聯網連接,我只想使用它從外部(ssh、http、https)訪問伺服器(路由器)。公共 IP 網路連線將連接到 eth2。
我不知道如何配置。當我剛剛將此配置輸入 /etc/network/interfaces 時,我無法透過為 eth2 指定的公用 IP 存取伺服器(ssh、http、https)。 (與此公共 IP 的互聯網連接正常 - 我使用不同的硬體路由器測試了它,我可以從外部很好地訪問它):
# WAN network interface with a public IP
auto eth2
iface eth2 inet static
address 217.XXX.XXX.AAA
netmask 255.255.255.224
gateway 217.XXX.XXX.BBB
dns-nameservers 8.8.8.8 4.4.4.4
有人能幫我解決這個問題嗎?
好的,我部分解決了這個問題。
我創建了新的路由表,並為“公共 ip WAN”添加了路由,並添加了一條 ip 規則,因此來自公共 ip 的所有內容都將使用新路由表路由到正確的介面/網關:
sudo ip route add 217.XXX.XXX.160/27 dev eth2 src 217.XXX.XXX.185 table T1
sudo ip route add default via 217.XXX.XXX.161 table T1
sudo ip rule add from 217.XXX.XXX.185 table T1
現在我可以透過與 WAN eth2 關聯的公共 IP 從外部存取伺服器。讓我擔心的是,自從我設定了這個之後,我就無法從路由器後面的 LAN 透過公用 IP 存取伺服器了。我認為這是因為偽裝的設定方式是我們透過 eth3 從路由器後面的 LAN 路由所有內容 - 這是一個 WAN 介面 eht3(沒有公共 IP)。我對嗎?有辦法解決這個問題嗎?
答案1
徹底解決了
現在我已經有了正確的設置,整個設置正在運行,因此我可以透過公共IP (WAN1) 從互聯網訪問伺服器,並透過WAN2 將LAN 路由到互聯網,並且我仍然可以透過其公共IP (WAN1) 訪問伺服器區域網路。這是必須配置的路由,以使其按照我之前描述的方式運作:
ip route del default table main
ip route add default via 192.168.1.20 dev eth3 table main
ip route add 217.XXX.XXX.160/27 dev eth2 src 217.XXX.XXX.185 table T1
ip route add default via 217.XXX.XXX.161 dev eth2 table T1
ip route add 192.168.2.0/24 dev br0 table T1
ip route add 192.168.1.0/24 dev eth3 table T1
ip route add 127.0.0.0/8 dev lo table T1
ip route add 192.168.1.0/24 dev eth3 src 192.168.1.1 table T2
ip route add default via 192.168.1.20 dev eth3 table T2
ip route add 192.168.2.0/24 dev br0 table T2
ip route add 217.XXX.XXX.160/27 dev eth2 table T2
ip route add 127.0.0.0/8 dev lo table T2
ip rule add from 217.XXX.XXX.185 table T1
ip rule add from 192.168.1.1 table T2
就是這樣。於是就解決了。