如果自己的服務器是在內網,想在外網通過ssh在自己的VPS服務器上遠程登錄自己的內網服務器,可以按照如下操作:
一、在自己的服務器上使用如下命令:
#ssh -CfnNT -R 端口A:localhost:端口B VPSIP -p 端口C -l root
端口A是你VPS上已經可以使用的端口,也就是沒有被其它占用的端口
端口B是你服務器上的ssh的端口,默認的是22
端口C是你VPS上的ssh的端口
root是你VPS的根用戶
假設端口A為5000,端口B是22,端口C是3000,VPS服務器的IP是123.123.123.123
那么上面的命令就是
#ssh -CfnNT -R 5000:localhost:22 123.123.123.123 -p 3000 -l root
這條命令的作用是將內網服務器的22端口映射到你的VPS服務器的5000端口上
上面命令的3000端口其實與映射端口無關,只是執行這條命令需要用到ssh連接到你的VPS服務器,而VPS服務器的ssh對外可用的端口是3000
在內網的服務器輸入上面的命令后,需要輸入你的VPS服務器的root用戶的密碼,然后就完成端口映射了。
二、然后登錄到自己的VPS
在自己的VPS服務器上登錄內網服務器,登錄命令是ssh -p 5000 root@localhost,按照提示輸入自己的內網服務器的root用戶的密碼就OK了
附:Centos查看端口占用情況和開啟端口命令
Centos查看端口占用情況命令,比如查看80端口占用情況使用如下命令:
lsof -i tcp:80
列出所有端口
netstat -ntlp
1、開啟端口(以80端口為例)
方法一:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 寫入修改
/etc/init.d/iptables save 保存修改
service iptables restart 重啟防火牆,修改生效
方法二:
vi /etc/sysconfig/iptables 打開配置文件加入如下語句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 重啟防火牆,修改完成
2、關閉端口
方法一:
/sbin/iptables -I INPUT -p tcp --dport 80 -j DROP 寫入修改
/etc/init.d/iptables save 保存修改
service iptables restart 重啟防火牆,修改生效
方法二:
vi /etc/sysconfig/iptables 打開配置文件加入如下語句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j DROP 重啟防火牆,修改完成
3、查看端口狀態
/etc/init.d/iptables status