Re: [問答] 請問私網/公網的問題

看板Network作者 (黑盒子)時間4年前 (2020/05/06 22:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/11 (看更多)
※ 引述《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 pi@1.1.1.1 : : 我本來學的是 : : 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 pi@1.1.1.1 : 這道指令要在哪下? : : 在 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://www.ptt.cc/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://www.ptt.cc/bbs/Network/M.1588776527.A.B8F.html
文章代碼(AID): #1UiivFkF (Network)
討論串 (同標題文章)
文章代碼(AID): #1UiivFkF (Network)