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

看板Network作者 (吹笛牧童)時間4年前 (2020/05/05 11:02), 4年前編輯推噓17(17061)
留言78則, 9人參與, 4年前最新討論串1/11 (看更多)
大家好,第一次來到貴板發言,先拜個碼頭 <(_ _)> 這次來這裡,是想請問: 我知道 私網可以 ping 到公網,但是公網不可以 ping 私網 理由也很簡單:如果公網可以 ping 私網,那麼一個特定的私網 IP, 應該要 ping 誰? 私網是為了 IP 分享之類理由而生的 每個私網,都可能有同一個私網 IP 因此,這根本等同無法辨識 可是,我大可 ping 該私網的對外窗口;那個必是公網 IP 然後特定的 port 如果有打開,有設定 它就當然可以設為連入到特定私網 IP 事實上我也描述了如何在私網 IP 架設網頁的方法 但是我也只懂到這裡了 然後我要問的是:為什麼私網可以收 email? 以前我只想到向外 ping,公網 IP 有唯一性 但我卻隱隱覺得有個問題沒想通 那就是,位在公網的 mail server, 當然也得把封包丟回私網啊 怎麼這時就不說封包無法去私網呢? 或者,這時正是用了 ip forward 的技巧 mail server 其實是把封包丟給私網對外窗口,然後經特定 port 送給特定 IP? 果真如此的話,我是不是可以說:只要能收 email, 就可以架 web server? 我是不是可以說: 手機分享網路給筆電,筆電可以收 email,所以筆電也可以架 web server 如果不行,那麼上面幾句是為什麼錯了?從哪裡有誤解了? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.219.131.19 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Network/M.1588647766.A.AFE.html

05/05 11:50, 4年前 , 1F
Public IP 決定一切
05/05 11:50, 1F
是的,我也只會回這句話而已 我的問題是我不知道詳細

05/05 12:33, 4年前 , 2F
收EMAIL是你連到主機去下載,不是主動發給你
05/05 12:33, 2F
我知道,但是主被動不是問題 因為重點是的確有封包從公網往私網流動了,對不對? 既然有,那就代表這條路是通的,我要的也不過這樣而已 那我就可以參考這個網頁 https://blog.csdn.net/junmuzi/article/details/8446398 先由私網下指令去 ssh 公網,建立 ssh tunnel 之後公網反鑽這個 tunnel,就能見到私網了 所以我能說,所謂的收 email,這個動作其實就是有先建 tunnel 嗎? 不然為什麼我的 ip 是私網,mail server 卻能丟封包給我呢?

05/05 12:39, 4年前 , 3F
服務對內 對外都可以,對內就走另一個協定
05/05 12:39, 3F

05/05 12:39, 4年前 , 4F
外對內就是宣告
05/05 12:39, 4F

05/05 12:41, 4年前 , 5F
Server的定義並不一定是硬體,提供服務也可稱為Server
05/05 12:41, 5F

05/05 12:41, 4年前 , 6F
因此NB當然可以當作Web srv 或 mail srv
05/05 12:41, 6F

05/05 12:41, 4年前 , 7F
只是系統跟硬體效能是否可負擔就是問號
05/05 12:41, 7F
其實我沒法子完全描述我的問題,所以我才簡單說架網站 但是我將不會有什麼流量,那個網站只有我在用 所以效能不是我要考量的,我要考量的只有能不能的問題

05/05 12:42, 4年前 , 8F
你有興趣也可以去架設sendmail
05/05 12:42, 8F
我會架 sendmail 啊,這問題擴散了 我的問題只在公網為何可以丟封包回私網而已

05/05 12:42, 4年前 , 9F
從內對內 可收信也可寄信,對外時要如何宣告
05/05 12:42, 9F

05/05 15:19, 4年前 , 10F
現在你想一下 你怎麼上網的 私網跟公網要內容 他怎麼
05/05 15:19, 10F

05/05 15:19, 4年前 , 11F
丟回來?
05/05 15:19, 11F
對,我就是不知道這個,所以才問這問題 所以你要我先回想這個,我就卡死了 陷入了先有雞還先有蛋的問題 我無從回想 ※ 編輯: HuangJC (49.219.131.19 臺灣), 05/05/2020 17:33:52

05/05 17:52, 4年前 , 12F
你google一下"NAT" 整個問題都解決
05/05 17:52, 12F
> 可是,我大可 ping 該私網的對外窗口;那個必是公網 IP > 然後特定的 port 如果有打開,有設定 > 它就當然可以設為連入到特定私網 IP 這我前面打的,其實很多東西我是知道,但不完整,還有的是搞混 我有買一台無線 AP,如果我申請了固網 那麼躲在無線 AP 之後的私網就有這問題 不過我可以把私網 IP 轉到無線 AP 的 Wan 端,開 port 是了,這項功能位在 NAT 導向之下的 虛擬伺服器 我會用啊;是我懂得不夠完整 我也曾寫信給 TP-LINK,因為我買了他們的無線 AP,所以尋求技術支援 --------------------- 我問 > 貴公司有一類 AP, 是可以插 SIM 卡的 > 這種產品是不是可以讓外網看到內網的網頁? > (做好虛擬伺服器的設定即可?) > 這個取決於插SIM卡的這個AP,從ISP端獲取的WAN IP是公網IP位置還是私網IP位置。 > 要是ISP能保證給這個AP分配一個公網IP位置,那麼做好虛擬伺服器的設定即可; > 若WAN IP是私網IP位置,不僅需要在AP上做虛擬伺服器的設定, > 還需要在ISP端給這個AP開啟相應的端口。ISP端開端口一般比較複雜, > 很多ISP也不提供這樣的服務,所以購買SIM卡之前建議跟ISP確認清楚, > SIM卡所在的AP獲取的IP位置是什麼類型的。 看到這我感覺懂了,想必我的 SIM 卡 IP 本身就是私網 所以設好穿越 SIM 卡的 NAT 轉發也沒用 直到收 mail 時才感覺不太對勁 天知道 mail 穿越幾層(至少也兩層) 電腦 -------> 裝SIM的無線AP --------> ISP 業者 私網 lan 端私網,wan 端私網 公網 在看 ssh tunnel 說明時,我的感覺和設定無線 AP 的虛擬伺服器一樣 或許 ssh tunnel 也是 NAT?(我就是不夠精確) 實際想測試時,遇到的障礙是 我不知道要把指令下到哪裡去 是不是只要我能 ssh 到你 我就可以開 ssh tunnel 給你? 如果是,那 SIM 卡 IP是私網也不打緊了 剛查了 wiki NAT 看到一段話 > 由路由器跟蹤每個連接上的基本資料,主要是目的位址和埠。 > 當有回覆返迴路由器時,它通過輸出階段記錄的連接跟蹤資料來決定 > 該轉發給內部網路的哪個主機 喔?這句似乎是答案 由私網到公網的路上,不見得只有穿越一層,也許是 N 層 (我就是在問,如果有 N 層,為什麼 email 封包穿越了,可見有自動設定這回事啊 我就是想要這個自動來替我開 ssh tunnel 啊;或者說不開,被限制 那就告訴我:問題在這裡,因為 email 是被允許的,但 ssh 不是被允許的) 我還是得成功的開個 ssh tunnel 感受一下問題出在哪裡

05/05 18:06, 4年前 , 13F
推樓上
05/05 18:06, 13F

05/05 19:08, 4年前 , 14F
你內對外,確定是走ssh? 通常這個ssh指得是服務那一台
05/05 19:08, 14F
> 所以我能說,所謂的收 email,這個動作其實就是有先建 tunnel 嗎? > 不然為什麼我的 ip 是私網,mail server 卻能丟封包給我呢? 這是我前面的問句,我並不確定 mail 是用了這個技術 但是, mail 歸 mail,我之後不送 mail 我之後自己想要 ssh 我公司會有公網 ip,我將可以 ssh 進公司 但我希望公司可以 ssh 我的電腦(雖然它位在私網,而且還不是固網) 目前看來似乎不是不可以 剛前面自問的,ssh tunnel 指令不知要下給誰 我要 ssh 進公司,當然 ssh tunnel 也就是下給公司 不管穿越幾層,只要沒設防火牆,應該都會開吧.. 但目前公司那邊還沒架好,我無法想像 我正在想怎麼用 virtual box 之類模擬器弄個環境來測

05/05 19:08, 4年前 , 15F
你舉sim卡本身就有NAT限制,正常來說,外對內並不會幫你
05/05 19:08, 15F

05/05 19:08, 4年前 , 16F
轉發
05/05 19:08, 16F

05/05 19:09, 4年前 , 17F
若以固網來形容比較恰當,我認為你搞錯mail srv會走哪些
05/05 19:09, 17F

05/05 19:09, 4年前 , 18F
協定跟埠
05/05 19:09, 18F
固網就不會有這問題了 當我的無線 AP 外面是接固網時 我已經做到了分享網頁,根本不會問這問題了 那為什麼不去申請固網呢? 因為已經有了手機網路,手機分享給電腦 那當然就異想天開,想要由手機網路解決這件事 > 但是我將不會有什麼流量,那個網站只有我在用 因為我只是要 ssh 而已啊~

05/05 19:12, 4年前 , 19F
服務開啟常見的smtp 465,外部經由dns解析,知道這台主機
05/05 19:12, 19F

05/05 19:12, 4年前 , 20F
wan ip,經由465連入指定mail srv
05/05 19:12, 20F

05/05 19:12, 4年前 , 21F
內對外,若沒有設置防火牆,且沒有filter,單一路由本來
05/05 19:12, 21F

05/05 19:12, 4年前 , 22F
就送出去,以便找尋到目標主機
05/05 19:12, 22F
※ 編輯: HuangJC (49.219.131.19 臺灣), 05/05/2020 19:29:00

05/05 19:29, 4年前 , 23F
那你的問題出在CGNAT
05/05 19:29, 23F

05/05 20:03, 4年前 , 24F
你收email 從第一個內網開始穿越到最外網 都會有nat紀
05/05 20:03, 24F

05/05 20:03, 4年前 , 25F
錄 只是你摸不到
05/05 20:03, 25F

05/05 20:31, 4年前 , 26F
感覺你要先弄清楚網路協定,對內對外要搞清楚吧
05/05 20:31, 26F

05/05 21:04, 4年前 , 27F
你有開網頁server的port不代表其他服務就能連進來阿
05/05 21:04, 27F

05/05 21:05, 4年前 , 28F
你希望透過SSH連進公司,你公司的電腦就必須有開SSH服務
05/05 21:05, 28F

05/05 21:07, 4年前 , 29F
以及SSH的port。反之你想從公司SSH連回你家,你家的電腦
05/05 21:07, 29F

05/05 21:07, 4年前 , 30F
就必須有開SSH服務及所需port。server端跟client端不能
05/05 21:07, 30F

05/05 21:08, 4年前 , 31F
混為一談阿
05/05 21:08, 31F
沒混為一談 我在家的電腦是 Mac,透過 usb 轉 RJ-45 連向樹莓派 RPi Mac ssh RPi 或 RPi ssh Mac 這我都成功了 所以這都不是問題 我的問題真的就聚焦在 公網/私網/NAT 上

05/05 21:23, 4年前 , 32F
我覺得你"主被動不是問題"這句就感覺很有問題阿
05/05 21:23, 32F

05/05 21:23, 4年前 , 33F
能連入不代表能連出,反之亦然。這可不是甚麼"自動"
05/05 21:23, 33F
我意思是:這不是辦不到 這不自動,那就得下道指令 那我想學這道指令.. 因為我以前也懂'公網不能看向私網' 但現在我更計較'公網的確有封包可以流向私網' 所以應該可以理解,我是在探討更深入的問題 如果有人回我'公網不能看向私網' 那我知道,他只想到我從前的程度而已 還沒有深入..

05/05 21:31, 4年前 , 34F
你能收信是因為你能連的到mail主機。不代表mail主機能主
05/05 21:31, 34F

05/05 21:31, 4年前 , 35F
動連到你的主機
05/05 21:31, 35F
在任何時候,mail 主機是無法主動連到我的主機沒錯 但在我的主機發出要求之後,mail 主機就可以主動了 我在想的是,mail 主機發出的封包,是長怎樣的? 這個封包裡也要寫著它將往哪個 IP 去吧? 結果它寫著它要往私網 IP?那不是沒有辨識度? 那它寫著它要往公網 IP 的特定 Port? 那你還說這開 port 不是自動的? 我看是自動的,不過可能有限時 等 mail 封包收下來後就關閉了 如果是這樣,我也就不能像木馬屠城一樣順著殺進去了

05/05 21:33, 4年前 , 36F
對內對外這種方向性要弄清楚吧
05/05 21:33, 36F

05/05 21:36, 4年前 , 37F
你發出要求那不是對方主動連進來。是你主動建立跟mail
05/05 21:36, 37F

05/05 21:37, 4年前 , 38F
server的通道。mail主機並未主動連進你的主機
05/05 21:37, 38F
有這機制夠我用了 舉例來說,客戶電腦位在私網 電話講解一堆叫他怎麼維護,他都聽不懂 我只想取得客戶電腦的 ssh 連線,以後控制權都交給我,我來維護 於是,我從公網要 ssh 客戶的私網 的確是不能連,那我要求客戶先由他的私網 ssh 我的公網 連是他連,問題是之後的指令他不會打 所以他連完,開完通道之後 接下來我就要用這個通道反向 ssh 客戶的私網 真的夠我用了 我不用主動,但我要取得控制權

05/05 21:39, 4年前 , 39F
參考一下三向交握?前面說的NAT你有GOOGLE完了?
05/05 21:39, 39F

05/05 21:40, 4年前 , 40F
還有阿連出port跟連入port也要分開呀。不是你連到80port
05/05 21:40, 40F

05/05 21:40, 4年前 , 41F
你自己這邊的port就是80。
05/05 21:40, 41F

05/05 21:42, 4年前 , 42F
??太天真了吧
05/05 21:42, 42F

05/05 21:43, 4年前 , 43F
你不搞懂主被動你怎麼處理客戶開放SSHport讓你連入問題
05/05 21:43, 43F

05/05 21:43, 4年前 , 44F
連入連出方向不同阿。
05/05 21:43, 44F

05/05 21:48, 4年前 , 45F
如果純粹是這樣的功能應該蠻多遠端軟體都有
05/05 21:48, 45F

05/05 21:48, 4年前 , 46F
到真的不用搞懂原理。會用軟體就好
05/05 21:48, 46F
TeamViewer 做得到,但我覺得還是要搞懂原理 這不是自己打造輪子的問題 而是穩定性的要求 TeamViewer 是在傳整個畫面 我不需要,我只要傳文字而已 當然我也有替代方案 比如把想做的指令存放在公網電腦上,存入一個檔案 私網的連上公網電腦後把檔案拷回去 私網一分鐘從公網抓一次檔案 那麼公網這邊就很像可以直連私網,只是卡卡的,一分鐘一次 不過如果有反向 tunnel 機制,何必這麼陽春呢?

05/05 21:55, 4年前 , 47F
mail主機不會認得你的電腦他認的是你的IP
05/05 21:55, 47F

05/05 21:56, 4年前 , 48F
封包回來之後你的gateway會幫你轉到你的電腦
05/05 21:56, 48F
那個私網 IP 根本沒有辨識度,整個 internet 不知道可以找到多少重覆的私網 IP 所以我可以想像的是,MAIL 封包上寫的方向,是寄往我私網 IP 的對外窗口 一個臨時開的 socket pair

05/05 22:02, 4年前 , 49F
不就打洞 重點是要有一台有公網的relay 持續session
05/05 22:02, 49F

05/05 22:02, 4年前 , 50F
你才能保持nat不會不見才能反打洞
05/05 22:02, 50F
→ tomsawyer: 參考案例就是nas的ddns或你提的teamviewer或logmein等 05/05 22:03 對對對,就是在談反打洞 DDNS 老闆也有提,可是我查下去它似乎是在解決變動 IP 的問題 比如我有一台電腦,每次重開機就更換一個 IP 即使這 IP 是公網的,問題是變來變去 於是我就申請 DDNS,每次變 IP 就往外更新一下 這樣就可以用不變的 name 來找到我這台公網電腦 這解決了變動 IP 的問題,我看不出它可以把私網 IP 問題解決掉

05/05 22:03, 4年前 , 51F
不是私網IP是publicIP。
05/05 22:03, 51F

05/05 22:05, 4年前 , 52F
私人IP轉publicIP是NAT的工作。mailserver看不到你的私
05/05 22:05, 52F

05/05 22:05, 4年前 , 53F
人IP他只認得你的PUBLICIP
05/05 22:05, 53F
那就是了啊,這個 socket pair (參考這篇的回文,有提到了)是自動打開的,對吧.. 我可以理解供 mail 用的就是 mail 用的 因為 port 不同,所以它不能供 http 用,不能供 ssh 用 但至少各位滿足了貓的好奇心,大感謝 老實說從前我也買過 O'REILLY 的書 買了 PPP,DNS & BIND, TCP/IP 應該是沒融會貫通吧,還來問這些問題 我是不是用 'email 如何運作' 這樣的關鍵字就可以找到答案啊? (而且得翻成英文;英文比較好搜尋) 自己找不到答案很內疚,感謝各位的耐心

05/05 22:23, 4年前 , 54F
感覺你要的就在你自己說的名詞多深入就有了。FTP的被動
05/05 22:23, 54F
沒錯,就感覺而已 實際去查就受挫了;沒找到

05/05 22:23, 4年前 , 55F
方式可以參考一下
05/05 22:23, 55F

05/05 22:26, 4年前 , 56F
主被動真的就是問題不要當作不重要的
05/05 22:26, 56F
> 還有阿連出port跟連入port也要分開呀。不是你連到80port > 你自己這邊的port就是80。 還是得確認一下你的意思 私網電腦 <--> AP <--> 公網 http server 帶 NAT 功能 https://imgur.com/AVjVni9
在筆電上架網站,我已經架過了 而我的 AP,它本身自帶 NAT 功能,否則我也無法把它公開 就以上面附照而言,我也不是不知道兩個 port 可以不一樣 不過我的確不知道一件事: email 收信的要求,是由私網往公網送 而 email 內容封包,是由公網往私網送 就是會用同一個 socket pair 嗎? 你的意思是發出去用一個 port, 收回來有可能用另一個 port 嗎? 如果是,那要自動開的 port 可多了 如果不是,那還好嘛.. 至於中間途經十台電腦,反向時未必是同樣十台 這我反而好理解;因為網路本來就不穩定,隨時可以斷線 所有封包只要有最後目的就好了,就在可能路徑中流竄啊 只要還沒有 timeout,短路在一起的設備就是會有相同訊號 其它就是什麼訊號碰撞檢出協定,滑動窗協定... 那些我以前反而有看懂 (剛說了,有看但不夠精確) 我等下要去查 tcp/ip socket 搞不好這就是 socket 的概念 > 主被動真的就是問題不要當作不重要的 抱歉,是用字習慣的問題 我知道它很重要 所謂不重要是指'有法子解決' 能解決就不叫做問題,所以才說不重要 但它的確是我這個問題的關鍵,所以也可以說重要 這不是需要在這裡打轉的 需要的是:重要,那怎麼下指令? 或者答案是:不可能,你做不到的,收 mail 是有魔法的,但你沒有魔法 OK,那我也只好接受這個答案 XDDDD ※ 編輯: HuangJC (49.219.131.19 臺灣), 05/05/2020 23:56:29

05/06 00:30, 4年前 , 57F
FTP主動被動的區分應該就是為了解決一般透過NAT連線的
05/06 00:30, 57F

05/06 00:31, 4年前 , 58F
clinet連線到FTPserver無法建立資料通道的問題
05/06 00:31, 58F

05/06 00:33, 4年前 , 59F
client端透過XXXport連出然後連入server端21port
05/06 00:33, 59F

05/06 00:34, 4年前 , 60F
三向交握建立命令通道。然後要傳檔的時候client端會發出
05/06 00:34, 60F

05/06 00:35, 4年前 , 61F
一個要求告訴server端client端會開一個OOOport讓server
05/06 00:35, 61F

05/06 00:36, 4年前 , 62F
端連入client端建立資料通道。但是由於client端是透過
05/06 00:36, 62F

05/06 00:37, 4年前 , 63F
NAT轉發所以這時候server端會找不到clinet端就無法建立
05/06 00:37, 63F

05/06 00:37, 4年前 , 64F
資料通道
05/06 00:37, 64F

05/06 00:39, 4年前 , 65F
所以這時候會改用被動模式。命令通道建立之後,client向
05/06 00:39, 65F

05/06 00:40, 4年前 , 66F
server端發送被動傳輸的要求。這時候就變成server開放
05/06 00:40, 66F

05/06 00:41, 4年前 , 67F
另外一個port告訴clinet端可以透過這個port連入。所以
05/06 00:41, 67F

05/06 00:42, 4年前 , 68F
就是重複建立命令通道的流程建立資料通道
05/06 00:42, 68F

05/06 11:19, 4年前 , 69F
你收mail是跟伺服器要 不管你在"幾層"內網之中 只要可
05/06 11:19, 69F

05/06 11:19, 4年前 , 70F
以連網 就會全部nat seesion 只是你不知道你的出口por
05/06 11:19, 70F

05/06 11:19, 4年前 , 71F
t是哪個 而mail server根據你的出口port反多給你 這中
05/06 11:19, 71F

05/06 11:19, 4年前 , 72F
間所有nat設備都透過表一層一層丟回來直到私網
05/06 11:19, 72F

05/06 11:24, 4年前 , 73F
現在問題是 你現在的網路可能是cgnat(電信網路) 也就
05/06 11:24, 73F

05/06 11:24, 4年前 , 74F
是你的wan其實是很多層的nat 你無法用私網提供服務
05/06 11:24, 74F

05/07 11:21, 4年前 , 75F
就一個ssh reverse tunnel 結束 google第一篇就有
05/07 11:21, 75F

05/12 02:03, 4年前 , 76F
這篇長知識了
05/12 02:03, 76F

05/13 03:46, 4年前 , 77F
如果只是要用樹莓派 裝一個anydesk在上面 公司電腦也裝 直
05/13 03:46, 77F

05/13 03:46, 4年前 , 78F
接結案orz
05/13 03:46, 78F
謝謝,有空試 但我試過 team viewer 不行 解釋一下不行的問題 如果是我私人架的樹莓派,那是可以的 但想拿出去賣的樹莓派就不可以 原因是我們有很多廠商端不想開放的東西 舉例來說,我之前曾有一份工作,賣一套六百萬 其中有一套 CNC 車床,以及一台電腦 但是電腦拔軟碟,封 USB 槽,沒網路 為什麼? 因為一台六百萬這麼貴,VGA,RAM,CPU 都配備上等 我們不能容忍客戶請了個會摸魚的員工在上面偷裝奇怪的軟體或上班打電動 什麼都不許你裝,但我們也承諾全權負責;電腦燒幾台我們就會換幾台 這叫商品,我們不給你完全的控制能力 我們只承諾到合約上的範圍 同理,樹莓派灌好我們的軟體賣出,是只做合約裡的事 我們不給客戶 root 權限,不給他們灌軟體 XD 什麼都不許做;我們是把電腦當工具沒錯 但客戶不可以碰觸到電腦的內部 (cp, rm, ls 喔喔,這些簡單指令都不許跑啦;開機就是跑我們的軟體 軟體不許結束退出,要嘛你就關機) 我不曉得是否只是我不會操作 不過 teamviewer 我是跑不動了 哪天有空我再試試 --------- 我連入樹莓派是用 vnc 開機只跑我們程式,方法是建立 .xsession 檔,裡面填入要執行的檔名 這東西我也查了很久 或許在 .xsession 檔裡填 teamviewer 再填我們程式就搞定了 不過呢,teamviewer 要錢,所以我自己可以做到的事我就不這麼做了 ※ 編輯: HuangJC (49.216.170.239 臺灣), 05/15/2020 05:03:44
文章代碼(AID): #1UiDTMh- (Network)
討論串 (同標題文章)
文章代碼(AID): #1UiDTMh- (Network)