作者blackbox (黑盒子)
看板Network
標題Re: [問答] 請問私網/公網的問題
時間Wed May 6 22:48:45 2020
※ 引述《HuangJC (吹笛牧童)》之銘言:
: 標題: Re: [問答] 請問私網/公網的問題
: 時間: Wed May 6 15:15:52 2020
:
: ※ 引述《blackbox (黑盒子)》之銘言:
: : ※ 引述《HuangJC (吹笛牧童)》之銘言:
: : : 用文字難就用圖形啊
: : BBS用圖形更累
: : 假設有三台電腦
:
: 因為我有買 ipad & 觸控筆 XD
: 畫好後上傳 imgur 是個方法,不過畫得會很醜
:
: 至少比完整畫個簡報檔容易了
: 畢竟會來回答的都是免費顧問,不能要求太多
:
: : 1. RPI 擁有公網IP,提供公開SSH服務
: : 假設IP: 1.1.1.1 ,SSH PORT:22,待提供服務PORT:2345
: : 2. MAC 本機電腦,拿私網IP,可外連
: : 假設IP: 10.1.1.11
: : 3. SRV 服務主機,拿私網IP,不可外連
: : 假設IP: 10.1.1.12,服務:1234
: : MAC跟SRV在同一個私網,RPI在哪邊不重要
:
: : ssh -R 2345:10.1.1.12:1234 [email protected]
:
: 我本來學的是
:
: ssh -R 2345:10.1.1.12:1234 -l pi 1.1.1.1
:
: 你的打法好記多了
:
:
: : 打完收工
: : 每提供一個服務就是要多分配一個PORT
: : 但SSH PORT同一個就夠了
:
: 這最後一句反而不懂
:
: 我知道你這篇是在回我 localhost 可以換掉這件事
: 可是請問 ssh -R 2345:10.1.1.12:1234 [email protected]
: 這道指令要在哪下?
:
: 在 Mac 下的話,我的確感受到換掉 localhost 的意義了
: 可是 Srv 怎麼願意被徵用咧..
: 或,這道指令將會要輸入兩個密碼?
: 如果是就懂了;等等想法子架個 linux 虛擬機來試試
:
: 我現在在想一些代價問題,哪台電腦在做 nat 轉發
:
: 比如這個例子,指令在 Mac 上面下
: 是不是說,封包進來後是由 Mac 充當 NAT?
:
ssh指令是在MAC這台機器下的沒錯,應該形容成Port Forwarding比較接近
IP分享器建立個PORT FWD,就是把WAN IP的一個PORT對應到LAN的某個地方
我們在遠端的RPI開了Port FWD功能,但是這FWD卻是由MAC去處理
1.1.1.1:2345 <=> 10.1.1.11:xxxxx <=> 10.1.1.12:1234
對遠端的客戶而言,他是連到RPI,他不認識MAC跟SRV
對SRV而言,是MAC連到他,他不認識客戶跟RPI
: 也就是說,我學過把 AP 設成 NAT
: 而 ssh tunnal, 就是由下指令的那台電腦充當 NAT?
:
: 至於 cgnet 會有什麼問題,我還不懂
: 畢竟 email 的 request 已經突破層層內網穿出去了
: 而 mail server 的回傳資料也突破層層內網穿回來了
:
層層穿"出去"的request就是我說的主動連接
IP分享器可以在WAN IP做NAT功能對LAN提供服務。假設WAN IP: 2.2.2.2
當你用10.1.1.11連1.1.1.1:22時,他會建立紀錄:
1.1.1.1:22 <=> 2.2.2.2:xxxxx <=> 10.1.1.11:34567
(:xxxxx表示任意Port,下同)
對1.1.1.1而言是2.2.2.2去連接他,他不認識10.1.1.11
層層穿"進來"的NAT就沒有對應表了
今天你的IP分享器不會知道你在10.1.1.12:1234開了服務
所以除非你在Port Forwarding下手動設定 2.2.2.2:3456 <=> 10.1.1.12:1234
分享器不會也不應該主動讓2.2.2.2:xxxxx對應到10.1.1.12:1234
(不談DMZ, UPNP, Port Trigger啥的)
而這時外面的客戶端要連線的是2.2.2.2:3456而不是10.1.1.12:1234
CGNAT的問題是你的WAN IP不是公網IP
ISP發給你的是100.64.1.2這種類似私網的IP,對外變成ISP的3.3.3.3
一樣的連接變成
1.1.1.1:22 <=> 3.3.3.3:xxxxx <=> 100.64.1.2:xxxxx <=> 10.1.1.11:xxxxx
對於公網上的機器,只知道3.3.3.3,不知道後面的100跟10這段
此時你的Port fwd只能開在100.64.1.2,外面的人看不到的
: 可以想見的是,如果我要留著一個 ssh 通道做我想做的事
: 那便是一種資源佔用,所以會被設限?
:
手機要掛著登入遠端的SSH以便開啟通道,少了一個手機,好麻煩
除了所有封包都要經過手機外,大致上沒有其他問題
: 所以跨過手機的 ssh 通道將會無法服務嗎?
: 內網 ssh 外網應該是沒問題
: 但 ssh tunnel 讓外網反鑽回內網,會有問題嗎?
:
有可能造成資安問題,但是技術問題應該沒有
你讓一個本來被關在內網的服務可以被其他人使用
: 可惜手上沒有資源,沒得測..
:
:
: --
:
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.219.131.19 (臺灣)
: ※ 文章網址: https://webptt.com/m.aspx?n=bbs/Network/M.1588749355.A.3C2.html
: 推 blackbox: SSH指令在MAC下,然後所有流量都會經過這個SSH通道 05/06 17:16
: → blackbox: 此時你連1.1.1.1:2345就跟連10.1.1.12:1234一樣 05/06 17:17
: → blackbox: 看SRV的服務是什麼,假設也是SSH的話,那你就可以連 05/06 17:19
: → blackbox: 1.1.1.1:2345,連入後就直達SRV的機器了 05/06 17:19
: → blackbox: 下SSH指令時只是把PORT對應過去而已,這個PORT有沒有服 05/06 17:23
: → blackbox: 務,甚至SRV存在與否都不管 05/06 17:23
:
: 是,MAC 會位在 10.1.1.11, 卻吐出 10.1.1.12 的封包
: 但這不打緊,因為兩台私網電腦位在同一個網段,因此 Srv 仍然收得到
: 因此並不需要 Srv 同意,也不用打 Srv 的密碼
:
: > 此時你連1.1.1.1:2345就跟連10.1.1.12:1234一樣
:
: 但這句似乎有方向性
想成port forwarding的效果,只是提供服務的srv跟建立fwd的機器在不同地方
:
: 我昨天做了兩個設定,一個是 A 往 B 連,一個是 B 往 A 連
: 如果沒有方向性,都是短路在一起的概念
: 則效果應該一樣
:
: 但效果就是不一樣
:
: 我們以檔案的觀念來說,所謂的監聽 A 送往 B
: 就是
:
: buf = read(a)
: write(b, buf)
:
: 不斷的 while loop 這一段,直至監聽結束
: 但是反向有沒有呢?我認為應該有
: 因為比如 b 是 ssh server
: 我在 a 打個 ls, 要求看子目錄,指令傳至 b,在 b 執行 ls
: 然後 b 的執行結果仍然要送回 a (其實凡是有回應的 server 都是這樣啊)
:
socket是雙向的,我們在處理的是建立之前的步驟
:
:
: ※ 編輯: HuangJC (49.219.131.19 臺灣), 05/06/2020 19:31:41
: ※ 編輯: HuangJC (49.219.131.19 臺灣), 05/06/2020 19:58:40
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.6.59 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Network/M.1588776527.A.B8F.html