Linux中通过ssh内网穿透
内网穿透概念
内网穿透:通过公网地址访问到内网主机。例如我在公司内网有一台内网服务器,可以访问互联网,但是我在家里的主机是无法访问到公司主机。这就需要一个公网的主机地址作为“跳板机”,通过端口转发(ssh隧道)来实现通信。
如何实现?
首先,你需要准备一个云服务器(我用的阿里云),也就是具有公网IP的主机地址;如图:Internet。
1.登录上云服务器(Internet),修改ssh配置文件。
vim /etc/ssh/sshd_config
去掉GatewayPorts的注释,保存并退出。
GatewayPorts yes
重启sshd服务
systemctl restart sshd
2.登录上内网服务器,我这里借用的VPN登录公司内网服务器执行以下命令,可以提前设置好。
ssh -N -f -R 8885:127.0.0.1:22 root@49.49.49.49
介绍下三个参数的作用:
- -N,是不执行远端命令,在只是端口转发时这条命令很有用处。
- -f,是后台认证用户/密码,通常和-N连用,不用登录到远程主机。只有当提示用户名密码的时候才转向前台。
- -R,是将本地端口映射到远端主机端口。上述命令中被冒号分割的三部分含义:
8885:是指远程机器(Internet)需要使用的端口;
127.0.0.1:指的是需要访问的内网主机IP地址(服务器);
22:指的是需要访问的内网主机端口;
root@49.49.49.49是指作为跳板机的用户和IP,中间用@连接。
3.现在登录上云服务器,执行以下命令,即可连接到内网服务器。可以传输数据等操作。
ssh -p 8885 localhost
可能遇到的问题
- 服务器端口访问不了:查看阿里云服务器安全组是否开放此端口;查看服务器的防火墙是否允许对应的端口接收数据。
文章目录
关闭
共有 0 条评论