Alex D. Asked: 2022-03-26 06:43:02 +0800 CST2022-03-26 06:43:02 +0800 CST 2022-03-26 06:43:02 +0800 CST SSH socks 代理服务器默认开启 772 我需要一些关于基于 SSH 的 SOCKS 代理服务器的帮助。 我正在使用以下命令运行 SSH SOCKS 代理: ssh -N -D 0.0.0.0:1080 localhost 我可以默认启用它吗?无论如何,默认情况下 ssh 守护程序是打开的,因此必须有一种方法来配置它。 另外,我使用 0.0.0.0 来允许所有传入的 IP 地址。我可以将其限制在子网中吗?例如 192.168.1.0/24。或者至少是一个接口名称。 ssh proxy 1 个回答 Voted Best Answer mashuptwice 2022-03-26T06:53:12+08:002022-03-26T06:53:12+08:00 设置基于密钥的身份验证 作为先决条件,您需要设置 SSH 连接以使用基于密钥的身份验证,以便连接无需密码即可工作。 将您的公钥复制到远程计算机: ssh-copy-id remoteuser@remotehost 测试基于密钥的身份验证: ssh remoteuser@remotehost 如果 SSH 连接成功且不要求您输入密码,则可以继续。 创建系统服务 /etc/systemd/system/在调用中创建一个文件,yourtunnel.service内容如下: [Unit] Description=SSH socks proxy After=network-online.target [Service] User=your_user ExecStart=/usr/bin/ssh -N -D 0.0.0.0:1080 localhost ExecStop=kill $(pgrep -f 'ssh -N -D') RestartSec=10 Restart=always [Install] WantedBy=multi-user.target 运行sudo systemctl daemon-reload && sudo systemctl enable --now yourtunnel.service并检查服务是否成功启动sudo systemctl status yourtunnel.service 限制访问以仅允许特定的 IP 地址 您需要设置防火墙规则,因为命令中的 IP 地址仅指定 SSH 绑定到的本地计算机上的接口地址。 UFW 示例: sudo ufw allow proto tcp from 192.168.1.0/24 to any port 1080
设置基于密钥的身份验证
作为先决条件,您需要设置 SSH 连接以使用基于密钥的身份验证,以便连接无需密码即可工作。
将您的公钥复制到远程计算机:
测试基于密钥的身份验证:
如果 SSH 连接成功且不要求您输入密码,则可以继续。
创建系统服务
/etc/systemd/system/
在调用中创建一个文件,yourtunnel.service
内容如下:运行
sudo systemctl daemon-reload && sudo systemctl enable --now yourtunnel.service
并检查服务是否成功启动sudo systemctl status yourtunnel.service
限制访问以仅允许特定的 IP 地址
您需要设置防火墙规则,因为命令中的 IP 地址仅指定 SSH 绑定到的本地计算机上的接口地址。
UFW 示例: