NAT後的vsftp通路
-
- ftp下載下傳提示ftp: bind: Address already in use
- 正确解決辦法
ftp下載下傳提示ftp: bind: Address already in use
生成環境中遇到的問題,由于vsftp伺服器為内網伺服器,通過端口映射對外暴露端口。在映射出ftp的連接配接端口和資料傳輸端口後,ftp可以正常登陸,但擷取資料時報錯“500 Illegal PORT command. ftp: bind: Address already in use”
按網上的解決辦法仍然不行,根據提示懷疑是因為NAT後,用戶端回源時查找的是服務端内網位址導緻無法連接配接:
ftp> quote pasv
227 Entering Passive Mode (192,168,0,112,164,248).
ftp> passive
Passive mode on.
正确解決辦法
最後在google找到解決方案,直接在ftp中更改pasv_address配置,配置為公網位址即可,但如此配置後,将無法直接使用内網位址連接配接ftp
pasv_enable=YES
listen_port=***
pasv_min_port=*** (Default: 0 (use any port) ) pasv使用的最小端口
pasv_max_port=*** (Default: 0 (use any port) ) pasv使用的最大端口
pasv_address=公網位址 (Default: (none - the address is taken from the incoming connected socket) ) pasv模式中伺服器傳回的ip位址