温馨提示×

centos怎样开启ssh转发

小樊
54
2026-09-08 17:40:35
栏目: 智能运维

在 CentOS 上开启 SSH 转发(通常指 SSH 端口转发 / 隧道),可以从服务端配置客户端使用两方面来看。下面按常见场景说明。


一、服务端开启 SSH 转发功能(CentOS 服务器)

1. 修改 SSH 服务端配置

编辑配置文件:

sudo vi /etc/ssh/sshd_config

确保以下参数(按需开启):

AllowTcpForwarding yes
GatewayPorts yes        # 允许远程端口转发对外监听(可选)
X11Forwarding yes       # 如果需要 X11 转发

AllowTcpForwarding 默认一般是 yes

2. 重启 SSH 服务

CentOS 7 / 8 / Stream:

sudo systemctl restart sshd

CentOS 6(老版本):

sudo service sshd restart

二、客户端使用 SSH 转发(常见三种)

1️⃣ 本地端口转发(Local Forwarding)

场景:把本地端口转发到远程内部服务

ssh -L 本地端口:目标IP:目标端口 用户@服务器IP

示例(本地 8080 → 服务器内网 192.168.1.10:80):

ssh -L 8080:192.168.1.10:80 user@centos-server

本地访问:

http://127.0.0.1:8080

2️⃣ 远程端口转发(Remote Forwarding)

场景:把远程服务器端口转发到本地服务

ssh -R 远程端口:本地IP:本地端口 用户@服务器IP

示例(服务器 8888 → 本地 127.0.0.1:80):

ssh -R 8888:127.0.0.1:80 user@centos-server

远程访问:

http://服务器IP:8888

⚠️ 需要在服务端开启 GatewayPorts yes


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

场景:科学上网 / 内网穿透

ssh -D 1080 user@centos-server

浏览器设置 SOCKS5:

127.0.0.1:1080

三、后台运行(不占用终端)

ssh -N -f -L 8080:192.168.1.10:80 user@centos-server

参数说明:

  • -N:不执行远程命令
  • -f:后台运行

四、常见排错

问题 原因
转发无效 AllowTcpForwarding no
远程无法访问 未开 GatewayPorts
连接被拒绝 防火墙未放行端口
SELinux 限制 可临时 setenforce 0 测试

防火墙示例:

sudo firewall-cmd --add-port=8888/tcp --permanent
sudo firewall-cmd --reload

如果你指的是 SSH 代理转发(Agent Forwarding)X11 转发,可以告诉我具体用途,我可以给你更精确的配置。

0