LOADING...

加载中请稍等...

loading

本教程详细介绍如何通过 Systemd 配置持久化的 SSH 远程端口转发服务,包含完整的配置文件、自启动设置和故障排查方法。

SSH 远程端口转发服务配置指南

🔧 配置步骤

1. 创建 Systemd 服务文件

sudo nano /etc/systemd/system/ssh-tunnel.service

2. 服务文件配置

[Unit]
Description=SSH Remote Port Forward Service
After=network.target

[Service]
# 本地运行服务的用户
User=your_local_user

# SSH 命令配置
ExecStart=/usr/bin/ssh -N -R 22300:192.168.1.201:22300 [email protected] \
    -o "ExitOnForwardFailure=yes" \
    -o "ServerAliveInterval=60" \
    -o "ServerAliveCountMax=3"

# 服务运行参数
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

📝 参数说明

  • -N: 仅建立端口转发,不执行远程命令
  • -R: 设置远程端口转发
  • ExitOnForwardFailure: 端口转发失败时立即退出
  • ServerAliveInterval: 保活检测间隔(秒)
  • ServerAliveCountMax: 最大重试次数

3. 服务管理命令

# 重新加载配置
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start ssh-tunnel

# 设置开机自启
sudo systemctl enable ssh-tunnel

# 查看服务状态
sudo systemctl status ssh-tunnel

# 实时查看日志
journalctl -u ssh-tunnel -f

📋 前置检查清单

  1. SSH 密钥配置

    # 生成 SSH 密钥(如果没有)
    ssh-keygen -t ed25519 -C "[email protected]"
    

复制公钥到远程服务器

ssh-copy-id [email protected]

2. **防火墙设置**
```bash
# 在远程服务器上检查端口
sudo netstat -tlnp | grep 22300

# 配置 UFW(如果使用)
sudo ufw allow 22300/tcp

🔍 故障排查

常见问题检查

问题 检查命令
服务状态 systemctl status ssh-tunnel
详细日志 journalctl -u ssh-tunnel -n 50
端口占用 netstat -tlnp | grep 22300
SSH 连接 ssh -v [email protected]

连接测试

# 本地测试
curl http://localhost:22300

# 远程测试
curl http://8.154.81.6:22300

⚠️ 注意事项

  1. 确保 SSH 密钥已正确配置
  2. 检查远程服务器防火墙设置
  3. 验证本地服务用户权限
  4. 定期检查日志确保服务正常
  5. 建议配置备用端口或故障转移方案

🔒 安全建议

  1. 使用强密钥加密(ED25519/RSA 4096)
  2. 限制远程服务器上的端口访问范围
  3. 配置 SSH 密钥使用限制
  4. 定期更新系统和 SSH 服务
  5. 监控异常连接尝试

📚 参考资料

关于我

全平台同名”汪多多是只猫”,专注分享实用开源工具,让你的数字生活更自由!

关注我,发现更多旧物改造的乐趣与技巧!


头像
汪多多是只猫
失业的运维工程师
热爱开源与分享
微信公众号