作者starlin2 (找房子找房子找房子~)
看板Linux
標題[問題] 如何設定同時連內網(eth)跟外網(wifi)
時間Thu Jan 17 15:29:52 2019
目前小的有台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://webptt.com/m.aspx?n=bbs/Linux/M.1547710201.A.6AF.html
1F:推 chang0206: 只有連wifi 都不能通 那你所謂的「外網」就不通啊 01/17 15:53
2F:→ chang0206: 你要去看一下 iptables/ufw 的相關文件 01/17 15:54
3F:推 pizzahut: 你的路由表上面有兩個預設gateway當然會有問題.. 01/18 13:29
4F:→ pizzahut: metric值小的時候會被優先使用.. 01/18 13:30
5F:→ pizzahut: 所以你刪掉192.168.0.1會通是正常的 01/18 13:30
6F:推 pizzahut: 如果你要讓其他電腦透過內網gateway連入請另外加靜態路 01/18 13:32
7F:→ pizzahut: 由 01/18 13:32
8F:→ pizzahut: PS. 應該說,metric值比較小的設定會先被使用 01/18 13:34
9F:→ starlin2: 我知道metric值小優先~ 01/18 16:15
10F:→ starlin2: 想問一下,在有設定proxy的情況之外要怎麼讓外網可以通? 01/18 16:16
11F:→ starlin2: 目前是我有設proxy的時後外網就完全不能通。 01/18 16:17
12F:推 pizzahut: 可是都有了外網基本上應該不會再用到proxy..有點多此一 01/18 16:21
13F:→ pizzahut: 舉 01/18 16:21
14F:推 pizzahut: 理論上是不太可能指到proxy就不會通.. 可能是你指到的 01/18 16:26
15F:→ pizzahut: 有問題 01/18 16:26
16F:→ pizzahut: 又或者是proxy server上面的設定要設信任來源 01/18 16:27
17F:→ pizzahut: 不在來源內的網段就算有指到也不會給你用.. 01/18 16:27
18F:→ pizzahut: 因為你說只用內網連proxy是可以連外,那原因會偏向後者 01/18 16:29
19F:→ starlin2: 不知道要怎麼設定內網走proxy,但外網直接走192.168.x.x 01/18 17:28
20F:→ starlin2: 不要經過proxy? 01/18 17:28
21F:推 kdjf: 要不要走proxy 是你的末端clients像是瀏覽器自己要覺得的,O 01/18 17:58
22F:→ kdjf: S管不著 01/18 17:58
23F:推 yvb: 假設你所謂內網是 10.x.x.x , 透過 10.110.214.254 連接, 01/18 18:31
24F:→ yvb: 那就 route delete default gw 10.110.214.254 01/18 18:31
25F:推 yvb: route add -net 10.0.0.0/8 gw 10.110.214.254 01/18 18:33
26F:→ rexsony: 網卡的default route = off 01/18 22:09
27F:→ rexsony: 類似的環境route -n 你參考看看 01/18 22:10
30F:→ rexsony: eth1的網卡設定我已經把default route關掉了 01/18 22:14
31F:→ rexsony: 主要上網透過eth0 (ppp0)來出去. 所以我eth0的default 01/18 22:14
32F:→ rexsony: route有打開,這樣我的主機可以上網.也可以讓別台電腦 01/18 22:15
33F:→ rexsony: 連Wi-Fi進到FTP抓檔案. 01/18 22:15
34F:→ rexsony: subnet我借了一位,所以大家不會互相衝突 01/18 22:17
35F:→ rexsony: 你可以借位之後在給設定路由表就好 01/18 22:17
36F:推 chang0206: 有沒有設定proxy跟「外網」會不會通沒有關係 01/19 09:30
37F:→ chang0206: ㄟ,這樣講好像也不太對,應該說proxy跟路由沒關係 01/19 09:32
38F:推 rickieyang: 透過 ppp0 出去,那網卡有沒有設定 gw, 甚至沒有設定 01/19 22:48
39F:→ rickieyang: ip 都可以吧. 01/19 22:48
40F:→ starlin2: 先筆記下來,再研究看看,不過如果proxy跟路由沒關係, 01/21 15:17
41F:→ starlin2: 那為何我有設proxy時就算不接內網的網路線, 01/21 15:18
42F:→ starlin2: 外網(wifi)一樣沒辦法上網耶?然後把proxy設定拿掉就可. 01/21 15:18
43F:推 kdjf: 你設定了proxy後所有的clients包含瀏覽器都會用proxy跑所有 01/22 08:59
44F:→ kdjf: 的連線,可是你的proxy server要嘛不受理(有插內網線)要嘛不 01/22 08:59
45F:→ kdjf: 存在(沒插線)自然不通 01/22 08:59
46F:→ pizzahut: 所以我上面的回答就說了可能是你連到的proxy server不給 01/22 13:33
47F:→ pizzahut: 你連啊..要proxy那邊加設定才可以 01/22 13:33
48F:→ pizzahut: 你把網路線拔掉表示沒有內網路由..表示預設只有外網路由 01/22 13:34
49F:→ pizzahut: 另外proxy server如果只是設定上去直接用那基本上是用 01/22 13:35
50F:→ 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
51F:推 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
52F:推 chang0206: 會通了,但你知道為什麼了嗎? 01/24 16:52
53F:→ starlin2: 是因為0.0.0.0是預設所有連入的IP都走這個gateway, 01/24 18:50
54F:→ starlin2: 然後如果連入的IP是10.x.x.x的話就會走10.110.214.254 01/24 18:51
55F:→ starlin2: 這個gateway,這樣理解正確嗎? 01/24 18:52
56F:推 silverarrow: 路過看完所有的推文都覺得學到很多! 01/29 14:23
57F:推 yvb: 不是連入的IP走哪個gateway, 而是送出封包的目標IP. 01/30 22:03
58F:推 niverse: 筆記 02/26 09:45