SSH埠轉發訪問內網伺服器
阿新 • • 發佈:2020-08-22
公司內網有臺8核8G的伺服器可以用來各種實驗。雖然配置不是太高,但是相對於自己1核2G的學生機來說已經不知道強到哪裡了。但由於是內網的緣故只能在公司內訪問,雖然通過遠端桌面也能使用,但是這樣未免太low了。於是想到用ssh來進行埠轉發,在家也能訪問內網伺服器。
條件
內網伺服器必須能連外網
伺服器資訊如下:
伺服器名稱 | 伺服器ip | ssh埠 | 伺服器配置 |
---|---|---|---|
公網伺服器 | 122.34.122.32 | 54374 | 1核2G |
內網伺服器 | 172.18.10.23 | 22 | 8核8G |
步驟
1.在內網伺服器上執行:
ssh -N -f -R [122.34.122.32:]10022:172.18.10.23:22 [email protected] -p54374
引數解釋:
-N:不執行遠端命令,如果ssh僅僅是用來轉發埠很有用。
Do not execute a remote command. This is useful for just forwarding ports.
-f:將本條命令放到後臺執行,防止內網伺服器ssh視窗關閉導致無法連線到內網伺服器
-R:設定轉發規則,本條規則是把本地22埠的請求轉發到122.34.122.32的10022埠,形成一條通路。
-p 54374:指定公網伺服器的ssh埠用於登入
2.登入公網伺服器,查詢埠發現埠已經監聽:
[root@bochs ~]# ss -tnl | grep :10022 LISTEN 0 128 *:10022 *:* LISTEN 0 128 [::]:10022 [::]:*
3.在122.34.122.32連線10022埠,輸入內網伺服器的root密碼登入:
ssh -p10022 122.34.122.32
命令執行完成即已登入到內網伺服器
top - 23:14:46 up 22 days, 5:26, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 280 total, 2 running, 278 sleeping, 0 stopped, 0 zombie %Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu4 : 0.0 us, 2.6 sy, 0.0 ni, 97.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu5 : 0.0 us, 2.7 sy, 0.0 ni, 97.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu6 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu7 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8008440 total, 5914008 free, 730108 used, 1364324 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6954304 avail Mem
真香!
延伸
如果內網的伺服器上有mysql同樣可以使用埠轉發訪問內網的mysql
ssh -N -f -R 33060:172.18.10.23:3306 [email protected] -p54374
mysql -h127.0.0.1 -P33060 -uroot -p