預防針:我對網路的部分尚未非常熟悉,有錯請糾正我,謝謝各位!
問題:
我想使用SSH透過public IP連線到學校的電腦(windows 10),我在學校的電腦用瀏覽器搜尋my ip後可以看到public IP為140.XXX.XX.XXX(臺灣學術網路),而學校的電腦private IP是透過DHCP取得的(192.168.XX.X)
我在自己電腦的PowerShell中輸入ssh user@public_IP
,但卻一直出現ssh: connect to host 140.XXX.XX.XXX port 22: Connection timed out
,想請問該怎麼解決?
目前已經有完成的事:
P.S. 家中的網路架構是ADSL->無線路由器(浮動public IP設成是NAT的外部IP,內部私有IP用DHCP派發),電腦是連WIFI,不知道這樣可不可以用remote port forwarding來解決我連不上的問題。
更新:
謝謝各位給的意見!!!我都有用心全部看完了
我上面說連線到學校的電腦是指放在實驗室裡面自己的電腦,但它接的是學校網路這樣。就在剛剛我突然想到自己之前有申請了學校的VPN
目前想到可能可行的解決方法如下,如果不可行請指正我,感恩各位!
ssh -R external_port:localhost:22 user@public_IP_of_my_home
來先建立一個tunnel,如果我家的public IP是固定IP的話(這點我還要確認一下),將路由器的dhcp關掉,讓路由器給我自己的電腦一個固定的private IP,接著設定我家路由器的埠口映射,將public_IP_of_my_home:external port映射到我電腦的localhost:internal port,這樣我就可以使用家中電腦ssh user@localhost -p internal_port
透過剛剛已經先建好的tunnel來訪問到學校電腦了新增防火牆規則允許port 22上的輸入SSH流量
你是新增在Windows防火牆嗎?
這條政策是要新增在學校的防火牆哦
先說個重要的觀念
所以建議樓主一定要先經過校方的同意
另外,簡單說明
校內電腦自動取得private IP
那麼多人都會透過同一個public IP上網
請問從外面這個public IP進入校內是要對到哪一個private IP呢
如果搞清楚就自然知道內外網不是這樣運作的
您因該沒有網路的相關知識。不清楚內外網之間的關係。
用簡單的文字圖例來說明
一般內部內域電腦。其對外會經由發配的設備如AP。
來統一使用對外IP(假設是140.1.1.1)來出去的。
例:
PC > 192.X.X.1(內網) > AP(DHCP) > (外網)140.1.1.1
PC > 192.X.X.2(內網) > AP(DHCP) > (外網)140.1.1.1
PC > 192.X.X.3(內網) > AP(DHCP) > (外網)140.1.1.1
PC > 192.X.X.4(內網) > AP(DHCP) > (外網)140.1.1.1
用比較白話點的說法,這是因為AP有集合的能力。讓發配統一一個對外IP出去。
所以才能對外連結。主要也是因為對外只有一條出去(不談其它因素)
但如果要外對內等於
(外網)140.1.1.1 SSH > AP >?? XX PC SSH XX
但實體的外部IP,只能到AP這台或是相對應的設備上。
但如果沒有特別指定機器的話。它並不會知道要連哪一台。
也就是說,你SSH連線。只會連到那台AP的設備上。並不會連到PC。
除非能去調整到那台設備。
但就如你說的。這是學校的網路。無防火、路由或是AP來說。
正常都不該由你去設定到。
因為搞不好這條主要的對外IP,已經有指定到其它電腦上。
如果你真的可以去設定過來。這也算是一種損壞行為。
問學校的網管或資中比較準,也比較能解決問題;就我個人多年的經驗,只有真正管理的人才會知道問題的原因,並決定是否開放或指引你用正確的連線方式。