1. 程式人生 > 實用技巧 >SSH埠轉發訪問內網伺服器

SSH埠轉發訪問內網伺服器

公司內網有臺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