温馨提示×

CentOS SSH端口转发设置方法

小樊
41
2025-11-15 18:29:37
栏目: 智能运维

在CentOS系统中,设置SSH端口转发(也称为SSH隧道)可以通过多种方式实现,包括本地端口转发、远程端口转发和动态端口转发。以下是详细的设置方法:

1. 本地端口转发

本地端口转发允许你将本地机器的一个端口转发到远程服务器上的一个端口。

命令格式:

ssh -L local_port:destination_host:destination_port user@ssh_server

示例:

假设你想将本地的端口8080转发到远程服务器example.com的端口80:

ssh -L 8080:example.com:80 user@ssh_server

2. 远程端口转发

远程端口转发允许你将远程服务器上的一个端口转发到本地机器上的一个端口。

命令格式:

ssh -R remote_port:destination_host:destination_port user@ssh_server

示例:

假设你想将远程服务器example.com的端口9090转发到本地机器的端口9090:

ssh -R 9090:localhost:9090 user@ssh_server

3. 动态端口转发(SOCKS代理)

动态端口转发允许你创建一个SOCKS代理,通过这个代理你可以将所有流量通过SSH隧道传输。

命令格式:

ssh -D local_port user@ssh_server

示例:

假设你想创建一个本地的SOCKS代理,监听端口1080:

ssh -D 1080 user@ssh_server

配置SSH服务器

为了使端口转发生效,你可能需要在SSH服务器上进行一些配置。

  1. 编辑SSH服务器配置文件 /etc/ssh/sshd_config

    sudo vi /etc/ssh/sshd_config
    
  2. 确保以下配置项存在并且没有被注释掉:

    AllowTcpForwarding yes
    GatewayPorts yes
    
  3. 保存并退出编辑器,然后重启SSH服务:

    sudo systemctl restart sshd
    

注意事项

  • 确保防火墙允许相应的端口通信。
  • 使用 -N 选项可以在不执行远程命令的情况下保持SSH连接,适用于端口转发:
    ssh -N -L 8080:example.com:80 user@ssh_server
    

通过以上步骤,你应该能够在CentOS系统上成功设置SSH端口转发。

0