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

看板Network作者 (黑盒子)時間4年前 (2020/05/07 09:22), 4年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串9/11 (看更多)
※ 引述《HuangJC (吹笛牧童)》之銘言: : 標題: Re: [問答] 請問私網/公網的問題 : 時間: Thu May 7 02:51:21 2020 : : : 謝謝,真的很有細節! : 獨學不能無友 : 書我都不知道看幾次了,但始終看不通 : 最後的結果是書都快被我當國文課本背起來了 : 但還是不懂 XDDDD (不知有沒有人懂這種無奈) : : : ※ 引述《blackbox (黑盒子)》之銘言: : : : 比如這個例子,指令在 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 : ^^^ : : 就這個,內網往外網我不懷疑其能力 : 但外網往內網有問題,所以我想 NAT 這時也還是有在做轉發 : 但這次是自動設的,和我要去 AP 的 NAT 功能表手動設不同 : : 其實要講解這細節,就連 NAT 都得給一個 IP 來講了 : 而我一直很搞不懂的是,NAT 是有一個 IP,還是兩個 IP? : 似乎是兩個,一個公網對外,一個私網對內, : NAT 就是電子交換機,將這兩個直接短路起來 : 對不起我偷懶了,因為我不想轉去提路由 的確分享器拿到的是兩個IP,一般顯示為WAN IP跟LAN IP 所以內網實際上是對LAN IP,然後在分享器內部轉為WAN IP 多WAN多LAN啥的又是另一段,整個聊起來就是超零碎超好睡的 : 私網對內那個似乎和我們其他私網電腦是同一個網段的,所以才符合 netmask 的規則 : 也才有法子填 gateway 這個欄位 : (這帶出另一個問題,現在的 NAT 都一插上就能用,不用自己設 route : 我以前是 modem 工程師,廠商有時送來的機器不會自己產生 route,我要先設才能用 : N 年前的產品比現在陽春吧! : 可是我都不知道要怎樣設,我不知道 gateway 是多少,怎麼查 : gateway 有一定的規則嗎?比如 netmask 所規範範圍內,所有可變 bit 都設 0? : 可變都設 1 是廣播位址嘛;因為我常看 default gateway 是設往 0,0,0,0 : 也或者其實要看硬體設定,廠商應該提供給我但沒提供) : gateway規則很簡單,你怎麽寫他怎麽走,反正大不了迷路被下一級丟包 比如說你可以指定10.2.0.0/16 全丟往 10.1.1.2 這樣的話這台機器看到所有往10.2.x.x的封包就往10.1.1.2塞 如果10.1.1.2沒有開啟路由轉發功能就丟包,有開啟就照10.1.1.2的路由處理 0.0.0.0是關鍵字,表示上面沒有的就丟給這個機器 : : 對遠端的客戶而言,他是連到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 : : 就這個,不把 IP 分享器也給一個 IP,根本講解不清這段 : 但我覺得有兩個 ip,私網 IP 就是 gateway : : : 當你用10.1.1.11連1.1.1.1:22時,他會建立紀錄: : : 1.1.1.1:22 <=> 2.2.2.2:xxxxx <=> 10.1.1.11:34567 : 1.1.1.1:22 <=> 2.2.2.2:xxxxx <=> 10.1.1.1:xxxxx <=> 10.1.1.11:34567 加入LAN IP這一段應該就可以理解了 : 是,我印象中讀過一句話:每個服務都要開 port : 而 NAT 被不定數量的私網 IP 動態連上時,也會動態開 port : 有還沒用的就開~ : : : (: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啥的) : : 好吧,先不談 Port Trigger : 我有去信問 tp-link, 他們回信後我還是不懂 : 我認為是我沒用到,所以不懂;那先別勉強學 : : : 而這時外面的客戶端要連線的是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以便開啟通道,少了一個手機,好麻煩 : : 除了所有封包都要經過手機外,大致上沒有其他問題 : : 這不是麻煩 XD : 我老闆丟給我一個使用情境 : 他說:牽一個固網很貴,客戶捨不得牽給 RPI : (我們 RPI 是用來做自動控制的微電腦,在工廠裡控制機台的) : 平時 RPI 都獨立運作 : : 但偶爾還是會想上網,這時客戶會拿著手機接近 : RPI 可不可以設成臨時連上手機並且馬上上網 : 實際上應該是有模糊空間,可以也不可以 手機分享網路要在手機上開啟WIFI AP功能 然後這功能會設定SSID跟加密等內容 然後再由RPI去"指定"連上這個AP 如果手機開啟WIFI AP接近,然後在RPI上手動選SSID那就可以 如果想要自動連上,雖然有可能可以,以資安角度太危險 : 我答:可 : 他又問:那這時可不可由外界控制 RPI : 我當場就想把客戶幹到外翻了 XD : 好好牽個固網是會死嗎?是有多貴.. : 牽個固網,你去美國都可以搖控你心愛的工廠 : : 然後老闆就說:可是人家物聯網都可以,都是內網,一樣可以控制工廠的燈泡 : 應該可以把燈泡註冊到雲端,以後就可以控制 : : 那時我就很想不通 : 以註冊來說是可以分辨出這顆燈泡沒錯 : 但以 IP 來說,內網 IP 沒什麼好註冊的,沒分辨力 : 如果牽固網,我就會在 IP 分享器上面設好固定式 NAT : 大方的說當然連得進來 : 但如果是手機網路,我突然想到,要在手機上設 NAT?手機根本沒這欄位! : 這樣知道我為什麼開始思考這些機車問題了吧.. : : 那就去用人家的服務啊! : 這句回答等於是:我回家吃自己,你找那家替你做去 : 老闆就是要我做 : 他就是說:team viewer 那種 server,我們自己架一個,程式自己寫 : 忽然想到...上面問P2P的應該不是你們吧 : 所以我才評估這些 : 其實不是一定要做 : 而是只要可以評估出來,很難,很貴,別人不可能做出來,那也可以不做 XD : 但我天天最不爽聽到的就是:別家那個誰誰誰做出來了耶,他為什麼可以 : : 靠北咧,別人可以! : : 所以我才得研究一下 : 最近我有新的藉口了:team viewer 可以沒錯,但試用期過後就要錢了,要代價啦 : (要錢他就不會逼我做了 XDDDD) : : 好啦,現在我終於搞懂了 : 只要你捨得手機丟在那邊 : 那你手機丟著的期間,我也承諾你做得到 : : 至於未來老闆會想通,改去逼客戶一定要牽固網 : 那是未來的事了,至少現階段我不輸別人 :P : : 放棄雲端控制的話有個解法 換成RPI開WIFI AP,手機去連他 要雲端的話就是要先投資雲端SERVER 然後解決上面說的RPI手動連入AP的問題 再來還要考慮NAT各種撞牆,最後通常會變成靠雲端主機中介流量 : : : : 所以跨過手機的 ssh 通道將會無法服務嗎? : : : 內網 ssh 外網應該是沒問題 : : : 但 ssh tunnel 讓外網反鑽回內網,會有問題嗎? : : 有可能造成資安問題,但是技術問題應該沒有 : : 你讓一個本來被關在內網的服務可以被其他人使用 : : 我也覺得資安有問題,一直在想有沒有地方可以上課 : 有些錢是得花的,坐著聽兩小時會懂,就去聽.. : : 在 PTT 問免錢的有時會被酸 : 在這板到現在還沒被酸是太好運了 : (至於上了課還不懂,就好像巨匠那種水準,那也不行 : 所以有時為了五斗米還是得來挨罵 : 我挨的很多罵都是主管要求做的,主管都覺得可以,然後我就來問,來挨罵 : 主管自己也不會 XD) : : : : 我昨天做了兩個設定,一個是 A 往 B 連,一個是 B 往 A 連 : : : 如果沒有方向性,都是短路在一起的概念 : : : 則效果應該一樣 : : : 但效果就是不一樣 : : : socket是雙向的,我們在處理的是建立之前的步驟 : : 等等來修文附上我的案例,因為都看你的數字,我已經眼花了 : 必需實體化一下 : : ------------------- : : 有了,我們用 shell 的變數功能 : 我都這樣做的,因為我背不起 IP : : RPi='169.254.161.158' : echo $RPi : 169.254.161.158 : : 其實像這樣,所以根本不用直接給 IP : 現在我有一台 Mac, IP 是 $MAC : 有一台 RPi, IP 是 $RPi : : 在開發 RPi 時,我是用 VNC 的 : 開 port 是 5900 : 所以,在 Mac 上以 VNC Viewer 連向 $RPi 就可以看到 RPi : : 然後我下 ssh tunnel 指令 : : ssh -R 5901:localhost:5900 myname@$MAC : 下在 RPi,打完 MAC 上的密碼後,shell 提示號會顯示我登入 MAC 了 : 然後這時我在 MAC 上,用 VNC Viewer 連向 localhost 的 port 5901,就可以看到 RPi : : 這邊是懂的 : 而我的理解是 RPi:5900 和 Mac:5901 短路在一起 : 去看 RPi:5900 就和去看 Mac:5901 一模一樣 : 看來一定有細節不一樣,因為若說短路,沒有方向性,那反過來設卻不會動 : : 在 MAC 上面下 : ssh -R 5900:localhost:5901 pi@$RPi : 然後在 MAC 用 VNC Viewer 看向 localhost 的 port 5901,沒用,不能看 : 那請問這個方向性是怎麼造成的,細微差異在哪? : 喔,這時若丟訊息進入 RPi 的 5900,就會由 MAC 的 5901 接收, : 看有沒有什麼服務在監聽 5901 就會動作 : 但反之丟訊息進入 MAC 的 5901,不會主動跑向 RPi 的 5900? : (我以為是雙向啊~ 不是蟲洞嗎? XD) : Port redirect一樣有端口綁定的問題 印象中通道開啟失敗還是會繼續進行SSH登入,不會報錯退出 初始狀況: $RPI:5900 被VNC佔用(監聽中) $MAC:5901 閒置 在$RPI下指令ssh -R 5901:localhost:5900 myname@$MAC $MAC:5901 要求讓SSH佔用,指向$MAC端的localhost:5900 ($RPI:5900) 此時狀況: $RPI:5900 被VNC佔用(監聽中) $MAC:5901 被SSH佔用(自動指向$RPI:5900) 在$MAC下指令ssh -R 5900:localhost:5901 pi@$RPi $RPI:5900 要求讓SSH佔用,指向$MAC端的localhost:5901 ($MAC:5901) 衝突發生,$RPI:5900已被佔用,通道開啟失敗 此時狀況: $RPI:5900 被VNC佔用(監聽中) $MAC:5901 閒置 你想達到的功能應該是-L,然後注意解析方向不同 在$MAC下指令ssh -L 5901:localhost:5900 pi@$RPi $MAC:5901 要求讓SSH佔用,指向$RPI端的localhost:5900 ($RPI:5900) 此時狀況: $RPI:5900 被VNC佔用(監聽中) $MAC:5901 被SSH佔用(自動指向$RPI:5900) : : : (咦,我來鑽第三層看看,鑽過去再鑽回來) : : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.219.131.19 (臺灣) : ※ 文章網址: https://www.ptt.cc/bbs/Network/M.1588791084.A.7AE.html : ※ 編輯: HuangJC (49.219.131.19 臺灣), 05/07/2020 02:53:23 : ※ 編輯: HuangJC (49.219.131.19 臺灣), 05/07/2020 03:00:00 : ※ 編輯: HuangJC (49.219.131.19 臺灣), 05/07/2020 03:17:56 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.6.59 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Network/M.1588814573.A.B70.html ※ 編輯: blackbox (180.218.6.59 臺灣), 05/07/2020 09:33:41 ※ 編輯: blackbox (180.218.6.59 臺灣), 05/07/2020 09:38:14
文章代碼(AID): #1UisBjjm (Network)
討論串 (同標題文章)
文章代碼(AID): #1UisBjjm (Network)