linux 系统ssh 隧道建立方法 在Linux系统中建立SSH隧道(也称为端口转发)是一种常见的安全网络通信技术,它允许你通过加密的SSH连接来传输其他服务的数据。以下是几种创建SSH隧道的方法:
本地端口转发 (Local Port Forwarding)
场景: 你想要从本地计算机访问远程服务器上的某个仅限内网的服务。命令格式:
ssh -f -N -L local_port:remote_host:remote_port user@jump_host
-
-f :该选项使得SSH在后台运行。
-
-N : 这个选项告诉SSH不执行任何命令。
-
local_port:是您将在本地计算机上监听并转发到远程端口的端口号。 -
remote_host:是远程主机的IP地址或域名,该服务实际运行在此主机上。 -
remote_port:是远程主机上服务所监听的实际端口号。 -
user:远程主机上的用户名。 -
jump_host:如果需要经过一个跳板机才能到达远程主机,则填写跳板机的IP或域名;如果是直接连接远程主机,则此为主机IP或域名。
例如,将本地的12345端口转发到远程服务器的数据库服务的5432端口:
ssh -f -N -L 12345:localhost:5432 user@server.example.com
现在,对本地12345端口的任何连接都会被加密并通过SSH隧道转发到远程数据库服务。
远程端口转发 (Remote Port Forwarding)
场景: 想要让远程服务器上的其他用户通过该服务器安全地访问本地计算机上的某个服务。命令格式:
ssh -f -N -R remote_port:localhost:local_port user@remote_host
-
remote_port:远程主机上用于监听并转发到本地端口的端口号。 -
其他参数与本地端口转发相同。
例如,将远程服务器的8080端口转发到本地80端口:
ssh -f -N -R 8080:localhost:80 user@remote_host
现在,在远程服务器上访问8080端口的流量会被转发回本地计算机的80端口。
动态端口转发 (Dynamic Port Forwarding)
场景: 创建一个SOCKS代理,用于透明代理整个网络流量。命令格式:
ssh -f -N -D local_socks_port user@remote_host
-
local_socks_port:本地机器上将作为SOCKS代理监听的端口号。
例如,创建一个本地SOCKS代理在本地的1080端口:
ssh -f -N -D 1080 user@remote_host
然后配置你的浏览器或其他应用程序使用本地1080端口作为SOCKS代理,这样所有通过这个代理的流量都会通过SSH隧道进行加密和传输。
确保在执行上述操作前,已经在目标主机上正确安装了SSH服务,并且可以无密码或使用密钥登录以实现自动化或后台运行。同时,根据实际情况调整防火墙规则以允许相关端口的转发。
原文始发于微信公众号(云网数端):linux 系统ssh 隧道建立方法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/259577.html