在 CentOS 系统中,使用 SSH 端口转发(SSH Tunneling)可以让你通过一个安全的 SSH 连接来访问其他网络服务。端口转发分为本地端口转发(Local Port Forwarding)、远程端口转发(Remote Port Forwarding)和动态端口转发(Dynamic Port Forwarding)。下面是如何设置这些端口转发的方法:
本地端口转发允许你将本地机器上的一个端口转发到远程服务器上的一个端口。
命令格式:
ssh -L local_port:destination_host:destination_port user@ssh_server
示例:
假设你想将本地机器的端口 8080 转发到远程服务器 example.com 的端口 80:
ssh -L 8080:example.com:80 user@ssh_server
在这个例子中,当你在本地机器上访问 localhost:8080 时,流量会被转发到 ssh_server,然后 ssh_server 会将流量转发到 example.com:80。
远程端口转发允许你将远程服务器上的一个端口转发到本地机器上的一个端口。
命令格式:
ssh -R remote_port:destination_host:destination_port user@ssh_server
示例:
假设你想将远程服务器 ssh_server 上的端口 9090 转发到本地机器的端口 9090:
ssh -R 9090:localhost:9090 user@ssh_server
在这个例子中,当你在远程服务器上访问 localhost:9090 时,流量会被转发到 ssh_server,然后 ssh_server 会将流量转发到本地机器的 localhost:9090。
动态端口转发允许你将本地机器上的一个端口转发到一个 SOCKS 代理服务器。
命令格式:
ssh -D local_port user@ssh_server
示例: 假设你想将本地机器的端口 1080 转发到一个 SOCKS 代理服务器:
ssh -D 1080 user@ssh_server
在这个例子中,当你在本地机器上配置应用程序使用 SOCKS 代理时,可以设置为 localhost:1080。
ssh_server 和目标主机。~/.ssh/config 文件中,以便更方便地使用。示例 ~/.ssh/config 配置:
Host example
HostName example.com
User user
LocalForward 8080 example.com:80
RemoteForward 9090 localhost:9090
通过这些配置,你可以简化 SSH 端口转发的命令。
希望这些信息对你有所帮助!如果有任何问题,请随时提问。