看板 Linux 關於我們 聯絡資訊
目前小的有台server環境如下: unbuntu 18.04 有Wifi跟網路線連接 然後想做到以下功能, 一,內網走網路線,外網走wifi。 二,可以用其他內網的電腦透過ssh或是http連到這台server。 三,這台server連出去都透過外網去連。 現在情況是: 連接內網時需要設定proxy才能夠讓其他電腦連線或是連出去, proxy設定方式是在/etc/environment內加入 export all_proxy="socks://10.110.11.12:8080/" export http_proxy="http://10.110.11.12:8080/" export https_proxy="http://10.110.11.12:8080/" 目前我同時連接內外網的時後用route -n輸出如下: Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp2s0 0.0.0.0 10.110.214.254 0.0.0.0 UG 20100 0 0 enx000 10.110.214.0 0.0.0.0 255.255.255.0 U 100 0 0 enx000 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enx000 192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0 此時會無法上網也無法連線到這台server 用sudo route delete default gw 192.168.0.1之後 可以連線也能讓其他電腦透過內網連入, 但目前這台電腦的對外連線就都是透過內網的proxy無法透過外網。 想問一下我要如何設定才能做到我要功能呢? PS:我有試過sudo route delete default gw 10.110.214.254 不過當我server有設定proxy的時後外網是完全不能用的, 就算我只有連wifi也是一樣。 最後感謝看我問題的人,更感謝回答我問題的人,謝謝。 -- 尋找理想中的房子~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.242.50.96 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1547710201.A.6AF.html
chang0206: 只有連wifi 都不能通 那你所謂的「外網」就不通啊 01/17 15:53
chang0206: 你要去看一下 iptables/ufw 的相關文件 01/17 15:54
pizzahut: 你的路由表上面有兩個預設gateway當然會有問題.. 01/18 13:29
pizzahut: metric值小的時候會被優先使用.. 01/18 13:30
pizzahut: 所以你刪掉192.168.0.1會通是正常的 01/18 13:30
pizzahut: 如果你要讓其他電腦透過內網gateway連入請另外加靜態路 01/18 13:32
pizzahut: 由 01/18 13:32
pizzahut: PS. 應該說,metric值比較小的設定會先被使用 01/18 13:34
starlin2: 我知道metric值小優先~ 01/18 16:15
starlin2: 想問一下,在有設定proxy的情況之外要怎麼讓外網可以通? 01/18 16:16
starlin2: 目前是我有設proxy的時後外網就完全不能通。 01/18 16:17
pizzahut: 可是都有了外網基本上應該不會再用到proxy..有點多此一 01/18 16:21
pizzahut: 舉 01/18 16:21
pizzahut: 理論上是不太可能指到proxy就不會通.. 可能是你指到的 01/18 16:26
pizzahut: 有問題 01/18 16:26
pizzahut: 又或者是proxy server上面的設定要設信任來源 01/18 16:27
pizzahut: 不在來源內的網段就算有指到也不會給你用.. 01/18 16:27
pizzahut: 因為你說只用內網連proxy是可以連外,那原因會偏向後者 01/18 16:29
starlin2: 不知道要怎麼設定內網走proxy,但外網直接走192.168.x.x 01/18 17:28
starlin2: 不要經過proxy? 01/18 17:28
kdjf: 要不要走proxy 是你的末端clients像是瀏覽器自己要覺得的,O 01/18 17:58
kdjf: S管不著 01/18 17:58
yvb: 假設你所謂內網是 10.x.x.x , 透過 10.110.214.254 連接, 01/18 18:31
yvb: 那就 route delete default gw 10.110.214.254 01/18 18:31
yvb: route add -net 10.0.0.0/8 gw 10.110.214.254 01/18 18:33
rexsony: 網卡的default route = off 01/18 22:09
rexsony: 類似的環境route -n 你參考看看 01/18 22:10
rexsony: https://imgur.com/wazXIbr 01/18 22:12
rexsony: https://imgur.com/GwvoAw2 01/18 22:13
rexsony: eth1的網卡設定我已經把default route關掉了 01/18 22:14
rexsony: 主要上網透過eth0 (ppp0)來出去. 所以我eth0的default 01/18 22:14
rexsony: route有打開,這樣我的主機可以上網.也可以讓別台電腦 01/18 22:15
rexsony: 連Wi-Fi進到FTP抓檔案. 01/18 22:15
rexsony: subnet我借了一位,所以大家不會互相衝突 01/18 22:17
rexsony: 你可以借位之後在給設定路由表就好 01/18 22:17
chang0206: 有沒有設定proxy跟「外網」會不會通沒有關係 01/19 09:30
chang0206: ㄟ,這樣講好像也不太對,應該說proxy跟路由沒關係 01/19 09:32
rickieyang: 透過 ppp0 出去,那網卡有沒有設定 gw, 甚至沒有設定 01/19 22:48
rickieyang: ip 都可以吧. 01/19 22:48
starlin2: 先筆記下來,再研究看看,不過如果proxy跟路由沒關係, 01/21 15:17
starlin2: 那為何我有設proxy時就算不接內網的網路線, 01/21 15:18
starlin2: 外網(wifi)一樣沒辦法上網耶?然後把proxy設定拿掉就可. 01/21 15:18
kdjf: 你設定了proxy後所有的clients包含瀏覽器都會用proxy跑所有 01/22 08:59
kdjf: 的連線,可是你的proxy server要嘛不受理(有插內網線)要嘛不 01/22 08:59
kdjf: 存在(沒插線)自然不通 01/22 08:59
pizzahut: 所以我上面的回答就說了可能是你連到的proxy server不給 01/22 13:33
pizzahut: 你連啊..要proxy那邊加設定才可以 01/22 13:33
pizzahut: 你把網路線拔掉表示沒有內網路由..表示預設只有外網路由 01/22 13:34
pizzahut: 另外proxy server如果只是設定上去直接用那基本上是用 01/22 13:35
pizzahut: 預設路由..除非你的路由表裏面有另外加設定像r大那樣 01/22 13:36
感謝各位的回覆,我更新一下我目前做的實驗, 一開始內外網都接的route設定如下: Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp2s0 0.0.0.0 10.110.214.254 0.0.0.0 UG 20100 0 0 enx000 10.110.214.0 0.0.0.0 255.255.255.0 U 100 0 0 enx000 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enx000 192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0 此時將firefox設為No Proxy,可以正常透過外網連線, 但用其他電腦無法以ssh透過內網連到該主機。 後來我把外網的Metric設的比較後面,設定如下: Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.110.214.254 0.0.0.0 UG 20100 0 0 enx000 0.0.0.0 192.168.0.1 0.0.0.0 UG 20200 0 0 wlp2s0 10.110.214.0 0.0.0.0 255.255.255.0 U 100 0 0 enx000 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp2s0 192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0 此時可以用ssh透過內網連到該主機。 設定Interface走外網ping google可以pin到。 ping www.google.com fail ping www.google.com -I wlp2s0 ok 但是如果用firefox一樣設為No Proxy確沒辦法連線,因為firefox是走default route, 也就是10.110.x.x的這個內網。 不接內網的網路線時設定如下: Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 20200 0 0 wlp2s0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp2s0 192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0 此時外網連線都正常。 所以現在我有兩個問題, 1.我要怎麼設定firefox讓他走外網,像pin + -I wlp2s0這樣, firefox裡面的設定只能設定proxy,也有試過chrome,也只能設proxy, 而且按下去他就直接跳出系統的proxy設定了。 2.如果我照原來的設定,要如何讓外部連到這台主機時讓他跑內網的那一條路? 目前應該是我連過去時他是看default route,也就是192.168.x.x(外網), 所以無法用ssh連到。 不知道linux內有沒有什麼地方是設定外部連線進來時是走那一個gateway的設定嗎? ※ 編輯: starlin2 (59.124.231.69), 01/23/2019 17:35:19
yvb: 請回去看我前面那三行推文. 01/23 22:54
感謝yvb大大,加入yvb大大的cmd後設定如下: Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp2s0 10.0.0.0 10.110.214.254 255.0.0.0 UG 1000 0 0 enx000 10.110.214.0 0.0.0.0 255.255.255.0 U 100 0 0 enx000 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enx000 192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0 目前用firefox連外設為no proxy後可以正常透過外網連線, 也可以讓其他機器透過內網連進來了。 最後再次感謝各位的協助,讓我學到很多網路設定方面的知識,謝謝大家。 ※ 編輯: starlin2 (210.242.50.96), 01/24/2019 13:44:22
chang0206: 會通了,但你知道為什麼了嗎? 01/24 16:52
starlin2: 是因為0.0.0.0是預設所有連入的IP都走這個gateway, 01/24 18:50
starlin2: 然後如果連入的IP是10.x.x.x的話就會走10.110.214.254 01/24 18:51
starlin2: 這個gateway,這樣理解正確嗎? 01/24 18:52
silverarrow: 路過看完所有的推文都覺得學到很多! 01/29 14:23
yvb: 不是連入的IP走哪個gateway, 而是送出封包的目標IP. 01/30 22:03
niverse: 筆記 02/26 09:45