ssh反向代理

应用的地方:

反向代理命令

autossh -M 0 -CNR 0.0.0.0:11451:[localhost:11434](https://localhost:11434/) -o ServerAliveInterval=60 -o StrictHostKeyChecking=no 用户名@云服务器ip

-CNR→-fCNR就是后台运行,前提配置好ssh免密登录

或者

autossh -M 0 -v -N -R 2208:localhost:2222 用户名@云服务器ip

要后台运行用nohub

前提云服务器ssh配置文件打开允许反向代理
云服务器端口放开(防火墙、云服务器管理网站)

反向代理命令后输入登录密码后👇

Note

1. 让 autossh 转入后台

在输入密码并成功建立连接后,按下 Ctrl + Z 组合键,这会将当前正在运行的 autossh 进程暂停并挂起。然后,输入 bg 命令,将该进程放到后台继续运行。示例如下:

plaintext

[1]+  Stopped                 autossh -M 0 -CNR 0.0.0.0:11451:localhost:11434 -o ServerAliveInterval=60 -o StrictHostKeyChecking=no czc@8.139.252.115
czc@wzd444:~$ bg
[1]+ autossh -M 0 -CNR 0.0.0.0:11451:localhost:11434 -o ServerAliveInterval=60 -o StrictHostKeyChecking=no czc@8.139.252.115 &

2. 防止会话关闭时进程终止

为了避免在你关闭当前终端会话时,autossh 进程被终止,可以使用 disown 命令。输入 disown -h %1 (这里的 %1 表示作业编号,你可以根据实际显示的作业编号进行调整),这样即使关闭终端,autossh 进程也会继续在后台运行。示例如下:

bash

czc@wzd444:~$ disown -h %1

3. 验证反向代理是否正常工作

在云服务器上使用 ss 命令查看 11451 端口是否处于监听状态:

bash

ss -tuln | grep 11451

如果有输出显示 11451 端口正在监听,说明反向代理已经成功建立。你可以在本地通过云服务器的公网 IP 和 11451 端口来访问校内服务器上的 Ollama API 了。

4. 配置自动启动(可选)

如果你希望每次服务器重启后,autossh 反向代理都能自动启动,可以创建一个 systemd 服务文件。具体步骤如下:

创建服务文件

bash

sudo nano /etc/systemd/system/autossh-ollama.service

编辑服务文件内容

ini

[Unit]
Description=Autossh tunnel for Ollama
After=network.target

[Service]
User=czc  # 替换为你的用户名
ExecStart=/usr/bin/autossh -M 0 -CNR 0.0.0.0:11451:localhost:11434 -o ServerAliveInterval=60 -o StrictHostKeyChecking=no czc@8.139.252.115
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

保存并退出编辑器

在 nano 中,按下 Ctrl + X,然后按 Y 确认保存,最后按回车键。

重新加载 systemd 配置

bash

sudo systemctl daemon-reload

启动并设置为开机自启

bash

sudo systemctl start autossh-ollama.service
sudo systemctl enable autossh-ollama.service

这样,即使服务器重启,autossh 反向代理也会自动启动,保证你可以持续通过云服务器访问校内的 Ollama API。