當SFTP端口被占用時,可以采取以下步驟來解決問題:
首先,你需要確定哪個進程占用了SFTP的默認端口(通常是22)。
sudo lsof -i :22
或者使用netstat:
sudo netstat -tulnp | grep :22
netstat -ano | findstr :22
找到占用端口的進程后,可以選擇終止該進程。
sudo kill -9 <PID>
其中<PID>是占用端口的進程ID。
taskkill /PID <PID> /F
同樣,<PID>是占用端口的進程ID。
如果終止進程不方便或者不希望終止,可以考慮更改SFTP服務器的端口。
/etc/ssh/sshd_config):sudo nano /etc/ssh/sshd_config
找到并修改以下行:
Port 22
改為其他未被占用的端口號,例如:
Port 2222
sudo systemctl restart sshd
或者在Windows上:
net stop sshd
net start sshd
確保新的端口在防火墻中是開放的。
ufw):sudo ufw allow 2222/tcp
通過控制面板中的“Windows Defender 防火墻”添加新的入站規則。
最后,使用新的端口測試SFTP連接是否正常。
sftp -P 2222 username@hostname
通過以上步驟,你應該能夠解決SFTP端口被占用的問題。