[Solved] Node uploads files to FTP server error: timed out while making data connection

Wrong reason
An FTP server was built in the local area network. Because the project uses an FTP file upload and download service packaged by node-ftp, the following error is reported when uploading files:

(node:29020) UnhandledPromiseRejectionWarning: Error: Timed out while making data connection
at Timeout. (D:\git project\nexrender\packages\nexrender-provider-ftp\node_modules\ftp\lib\connection.js:901:12)
at listOnTimeout (internal/timers.js:554:17)
at processTimers (internal/timers.js:497:7)
(Use node --trace-warnings ... to show where the warning was created)
(node:29020) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:29020) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Problem analysis

Open port 21 on the server and use cmd locally to connect to the ftp service. It is possible to connect normally and upload and download files.

Solution
Turn off the firewall, the server is CentOS7, the steps to turn off are as follows

#View the ports opened by the firewall
firewall-cmd --list-ports
#8008/tcp 21/tcp 80/tcp
#View the status of the firewall
firewall-cmd --state
#running
#Turn off the firewall
systemctl stop firewalld
#View firewall status
firewall-cmd --state
#not running

Read More: