telnet本机端口不通原因_【Academic】ssh端口转发实战复习 之 R
所有【Academic】標記的文章都是工作學習過程中隨手敲敲的技術相關的筆記/記錄,歡迎有興趣的大佬交流指正。
最近腿腳不方便,請了假在家辦公。作為一個熱愛工作的新青年我想在家連到公司的服務器,于是先復習了一下ssh的遠程端口轉發功能。
01
—
場景需求
家里的、公司的電腦基本都是位于內網中,通過NAT的方式訪問網絡,因此外網無法主動連接到內網的電腦,內網中的電腦無法連接到另一個內網中的電腦。通過ssh的遠程端口轉發可以實現這個目的,需要一臺具有公網IP的虛擬主機(VPS)作為中繼。遠程端口轉發與本地端口轉發類似,只不過轉發的方向是相反的,這個過程叫做reversetunnel。
02
—
網絡環境
中繼虛擬主機(V)的公網IP:234.2.3.4
目標服務器即公司辦公服務器的內網IP(T):192.168.100.1
家里本地PC的IP(A):192.168.1.1
03
—
理論上,
step1
在VPS(234.2.3.4)上修改sshd的配置/etc/ssh/sshd_config
將
#GatewayPorts no改為
GatewayPorts yesstep2
在目標服務器 T 上(192.168.100.1)運行:
ssh?-fN?-R?*:1993:localhost:22?root@234.2.3.4-R表示遠程端口轉發。
以上命令會在中繼服務器VPS上監聽端口1993,
凡是發送到這個端口的tcp流量都會轉發到本機(目標服務器)的22端口。
(由此可見遠程端口轉發與本地端口轉發的區別)
step3
在家里的PC上運行
ssh -p 1993 root@234.2.3.4就可以登錄到目標服務器。
這里的root是目標服務器的用戶,
因為中繼服務器234.2.3.4將1993端口收到的數據轉發回了目標服務器192.168.3.220的22端口。
解釋一下今天會用到的各個參數:-f?后臺執行ssh指令-C 允許壓縮數據-N 不執行遠程指令-R 將遠程主機(服務器)的某個端口轉發到本地端指定機器的指定端口-L 將本地機(客戶機)的某個端口轉發到遠端指定機器的指定端口-p?指定遠程主機的端口04
—
實際操作
由于我還要檢查內網服務器對內的80端口(web)服務狀態,以及需要用telnet對后臺進行配置(無sshd),所以服務器上配置了兩條,一個給httpd,一個給telnetd:
中繼上由于防火墻的關系,配置了本地轉發:
ssh -fN -L *:8080:localhost:19000 localhostssh -fN -L *:4321:localhost:19001 localhost這樣當我訪問 http://jumphost-IP:8080 時,就通過兩次轉發訪問了目標內網服務器的80端口;同理,telnet jumphost-IP?4321?┑( ̄Д  ̄)┍
好的,這樣一來我在家也可以好好完成領導布置的工作然后升職加薪走上人生巔峰啦啦啦~~~~~~~~~~(- -)
總結
以上是生活随笔為你收集整理的telnet本机端口不通原因_【Academic】ssh端口转发实战复习 之 R的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则表达式变量名命名的规则_如何简单有效
- 下一篇: 内存首地址为1000h_C++虚继承,菱