Ssh
SSH socks 代理伺服器預設開啟
我需要一些關於基於 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 連接以使用基於密鑰的身份驗證,以便連接無需密碼即可工作。
將您的公鑰複製到遠端電腦:
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