
我有以下設定:
N computers (static IP) --eth--> Wireless router <--wlan-- M computers (dynamic IP)
- 電腦運行的是 Ubuntu 14.04 或 Windows 10
- 路由器是 Linksys WRT 1900 ACS
現在,其中一台 M 電腦已連接到互聯網,並且我的提供者已為其分配了靜態 IP;而且由於種種原因,將網路線連接到路由器的Internet連接埠並不方便。這台計算機將運行 Ubuntu 14.04。
是否可以設定網絡,使所有到路由器的互聯網綁定流量都通過具有互聯網連接的電腦路由?內部網路上的 N 台電腦的主要用途是在 Github 上執行程式碼,因此它們需要能夠 ssh 到 Github 並存取 apt-repositories。 (編輯)
我還沒有找到任何與我的設定完全匹配的說明(網路拓撲不同或作業系統不同),而且我對自己的能力不太有信心,以至於我願意深入了解更改設定的過程進行測試(如果我犯了不可挽回的錯誤,將會受到相當大的懲罰)。謝謝!
答案1
簡單指南:
您可以將 Squid 設定為以下拓撲:Ubuntu 電腦必須有一個 NIC (wlan0) 連接到專用 LAN,另一塊 (eth0) 連接到 Internet。
要使用 Squid 設定透明代理,您必須新增必要的 iptables 規則。這些規則應該可以幫助您開始:
exec sudo -i
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 3128
第一行將啟用轉發
第二行將使所有來自 eth0(WAN 介面)的出站資料包具有 eth0 的來源 IP 位址。
第三行會將所有傳入的 HTTP 封包(目標為 TCP 80)從 wlan0(LAN 介面)重新導向至 Squid 偵聽連接埠(TCP 3128),而不是立即將其轉送至 WAN 介面。
現在您開始安裝 Squid,您將修改 Squid 配置以將其變成透明代理,您將 LAN 子網路(例如 10.10.10.0/24)定義為有效的用戶端網路。任何非源自 LAN 子網路的流量都將被拒絕存取。
sudo exec -i
apt-get update
apt-get install squid
nano /etc/squid/squid.conf
基本內容簡單範例:
## Hostname proxy example ##
http_port 3128 transparent
## Define our network ##
acl our_network src 10.10.10.0/24
## make sure that our network is allowed ##
http_access allow our_network
## finally deny everything else ##
http_access deny all
更多資訊:
http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html
答案2
您需要按照設計使用路由器。我發現奇怪的連接會極大地改變網路質量,而 Linksys 的庫存韌體並不是為真正奇怪的配置而設計的。
將數據機插入 Linksys 上的網際網路連接埠並設定路由器來處理連線。如果您更改的內容多於您記得的內容並且可以改回來,則可能需要恢復原廠設定。
如果您將電腦連接到數據機,然後連接到數據機上的交換器(連接埠群組),則需要在路由器和 DHCP 的本機設定中變更網關,以符合電腦的 IP。這確實依賴您的電腦來處理防火牆。如果是這種情況,請安裝fail2ban並尋找保護您的iptables。