SSH隧道 SSH


SSH隧道 SSH

使用 ssh -D 1080 -f -C -q -N user@境内服务器IP​ 命令创建的 SSH 隧道是持久化的,但它不会在机器重启后自动恢复。以下是关于这个命令的一些详细说明:

命令解释

  • -D 1080​:创建一个 SOCKS 代理,监听本地端口 1080。
  • -f​:后台运行,即在后台创建隧道。
  • -C​:启用压缩,减少数据传输量。
  • -q​:静默模式,减少输出信息。
  • -N​:不执行远程命令,仅创建隧道。
  • user@境内服务器IP​:境内服务器的用户名和 IP 地址。

隧道持久性

  1. 程序执行期间存在
    当你运行 ssh -D 1080 -f -C -q -N user@境内服务器IP​ 命令时,SSH 隧道会在后台创建并保持运行,直到你手动关闭它或程序结束。
  2. 机器重启后不存在
    这个 SSH 隧道不会在机器重启后自动恢复。如果你希望在机器重启后自动创建隧道,你需要将其添加到系统的启动脚本中。
  3. 手动关闭
    你可以通过以下命令手动关闭 SSH 隧道:

    pkill -f "ssh -D 1080"

自动启动 SSH 隧道

如果你希望在机器重启后自动创建 SSH 隧道,可以将命令添加到系统的启动脚本中。以下是一些常见的方法:

方法一:使用 crontab

  1. 编辑 crontab 文件

    crontab -e
  2. 添加启动命令

    在文件末尾添加以下行:

    @reboot ssh -D 1080 -f -C -q -N user@境内服务器IP

    保存并退出。

方法二:使用 systemd​ 服务

  1. 创建服务文件

    创建一个新的服务文件,例如 /etc/systemd/system/ssh-tunnel.service​:

    sudo nano /etc/systemd/system/ssh-tunnel.service
  2. 添加服务内容

    在文件中添加以下内容:

    [Unit]
    Description=SSH Tunnel to 境内服务器
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/ssh -D 1080 -f -C -q -N user@境内服务器IP
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
  3. 启用并启动服务

    sudo systemctl enable ssh-tunnel.service
    sudo systemctl start ssh-tunnel.service

总结

使用 ssh -D 1080 -f -C -q -N user@境内服务器IP​ 命令创建的 SSH 隧道在程序执行期间会一直存在,但在机器重启后不会自动恢复。你可以通过 crontab​ 或 systemd​ 服务来实现自动启动。


搭建TeamTalk服务器

蜘蛛纸牌

评 论
此页面未开启评论