15,050
edits
| (15 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Find the problem occurred: (1) local service at the server (localhost) (2) from LAN to server (3) from WAN to server | |||
{{LanguageSwitcher | content = [[Test connectivity for the web service | EN]], [[網路服務連線測試 | 漢字]] }} | |||
=== How to connect to the web service === | === How to connect to the web service === | ||
| Line 15: | Line 17: | ||
* curl<ref>[https://curl.se/docs/manpage.html curl - How To Use]</ref>: {{kbd | key = <nowiki>curl -vL http://IP:Port</nowiki>}} | * curl<ref>[https://curl.se/docs/manpage.html curl - How To Use]</ref>: {{kbd | key = <nowiki>curl -vL http://IP:Port</nowiki>}} | ||
** (optional if curl command was not installed) [https://help.ubidots.com/en/articles/2165289-learn-how-to-install-run-curl-on-windows-macosx-linux Learn how to install & run cURL on Windows/MacOSX/Linux | Ubidots Help Center] | |||
** commands e.g. | ** commands e.g. | ||
*** (1) Write output to <file> instead of stdout using {{kbd | key = <nowiki>curl -voL https://www.google.com</nowiki>}} | *** (1) Write output to <file> instead of stdout using {{kbd | key = <nowiki>curl -voL https://www.google.com</nowiki>}} | ||
| Line 29: | Line 32: | ||
# {{kbd | key = telnet 127.0.0.1 <PORT>}} If failed to connect the web service. It will show the message: "telnet: Unable to connect to remote host: Connection refused" | # {{kbd | key = telnet 127.0.0.1 <PORT>}} If failed to connect the web service. It will show the message: "telnet: Unable to connect to remote host: Connection refused" | ||
Using alternative web services if the Python was installed | Using alternative web services if the Python or Node.js was installed | ||
* (for python | |||
* (for | * (for python 3.x) {{kbd | key=<nowiki>python -m http.server [port]</nowiki>}} (default port: 8000)<ref>[https://docs.python.org/3.8/library/http.server.html?highlight=http%20server#module-http.server http.server — HTTP servers — Python 3.8.1 documentation]</ref> | ||
* (for Node.js) {{kbd | key=<nowiki>npx http-server [-p port]</nowiki>}} (default port: 8080)<ref>[https://github.com/http-party/http-server http-server: a simple static HTTP server]</ref> | |||
== Test connectivity for the local web service == | == Test connectivity for the local web service == | ||
WAN ○ -------> ○ LAN -------> <span style="color:red">● server</span> | WAN ○ -------> ○ LAN -------> <span style="color:red">● server</span> | ||
{{Tips}} If you has administrative permission to log into the server via SSH or Remote desktop service. | |||
=== Check if your computer/server Is being assigned the IP Address === | === Check if your computer/server Is being assigned the IP Address === | ||
| Line 44: | Line 48: | ||
* More on [[Network problem]] | * More on [[Network problem]] | ||
=== | === Check if web service has started successfully? === | ||
* Apache {{kbd | key = /etc/init.d/httpd status}} on CentOS7 <ref>[https://www.e2enetworks.com/help/knowledge-base/how-to-check-running-status-of-lamp-stack/ How to check running status of LAMP stack | E2E Networks Knowledgebase]</ref> | * Apache {{kbd | key = /etc/init.d/httpd status}} on CentOS7 <ref>[https://www.e2enetworks.com/help/knowledge-base/how-to-check-running-status-of-lamp-stack/ How to check running status of LAMP stack | E2E Networks Knowledgebase]</ref> | ||
* nginx {{kbd | key = sudo service nginx status}} on CentOS7 | * nginx {{kbd | key = sudo service nginx status}} on CentOS7 | ||
* Docker container {{kbd | key = docker ps}} to check if the container is running & expose the port<ref>[https://docs.docker.com/engine/reference/commandline/ps/ docker ps | Docker Documentation]</ref> | * Docker container {{kbd | key = docker ps}} to check if the container is running & expose the port<ref>[https://docs.docker.com/engine/reference/commandline/ps/ docker ps | Docker Documentation]</ref> | ||
=== | === Check if MySQL has started successfully? === | ||
==== Using lsof command ==== | |||
* {{kbd | key = lsof -i:3306}} on {{Mac}} or {{Linux}} | |||
The command lsof -i:3306 is used in Unix-like operating systems to list open files and the processes that opened them. Let's break down the command: | |||
lsof: This stands for "List Open Files". It's a command-line utility that displays information about files opened by processes. In Unix and Linux, everything is treated as a file (including hardware devices, sockets, and directories), so lsof is a powerful tool for system administrators to monitor and troubleshoot system behavior. | |||
-i: This option tells lsof to show only network files. In Unix and Linux, network connections are treated as files. The -i option can be used to filter connections based on the Internet address or network protocol. | |||
:3306: This specifies the port number. Port 3306 is commonly used by MySQL, a popular database management system. By including :3306, you are asking lsof to list all network files (which includes socket connections) that are associated with port 3306. | |||
Example output: localhost:mysql (LISTEN) means the MySQL has started successfully | |||
<pre> | |||
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME | |||
mysqld 93034 account 29u IPv4 0xxxx 0t0 TCP localhost:mysql (LISTEN) | |||
</pre> | |||
==== Using ps command ==== | |||
* {{kbd | key = <nowiki>ps aux | grep mysql</nowiki>}} on {{Mac}} | |||
Example output if MySQL has started successfully: | |||
<pre> | |||
_mysql 11083 0.3 0.2 409657280 31424 ?? Ss 2:12下午 0:01.07 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so | |||
ACCOUNT 12349 0.0 0.0 408645328 1648 s011 S+ 2:14下午 0:00.00 grep mysql | |||
</pre> | |||
Example output if MySQL has NOT started successfully: | |||
<pre> | |||
ACCOUNT 12349 0.0 0.0 408645328 1648 s011 S+ 2:14下午 0:00.00 grep mysql | |||
</pre> | |||
=== Check if a port was occupied by other process? === | |||
Check the port if used by other protocol | Check the port if used by other protocol | ||
* [https://www.speedguide.net/ports.php SG TCP/IP Ports Database] | * [https://www.speedguide.net/ports.php SG TCP/IP Ports Database] | ||
| Line 55: | Line 91: | ||
[[Find process running on port]] | [[Find process running on port]] | ||
* {{Linux}} | * {{Linux}} | ||
** [http://linux.die.net/man/1/nmap nmap] "Network exploration tool and security / port scanner." e.g. {{kbd | key = <nowiki>nmap -p 80,443 ip</nowiki>}} | ** [http://linux.die.net/man/1/nmap nmap] "Network exploration tool and security / port scanner." e.g. {{kbd | key = <nowiki>nmap -p 80,443 ip</nowiki>}} | ||
| Line 60: | Line 97: | ||
** [http://linuxcommand.org/man_pages/ps1.html ps] List the current processes. Input {{kbd | key = <nowiki>ps -aux | grep "PORT_NUMBER"</nowiki>}} e.g. {{kbd | key = <nowiki>ps -aux | grep 443</nowiki>}} | ** [http://linuxcommand.org/man_pages/ps1.html ps] List the current processes. Input {{kbd | key = <nowiki>ps -aux | grep "PORT_NUMBER"</nowiki>}} e.g. {{kbd | key = <nowiki>ps -aux | grep 443</nowiki>}} | ||
** [https://docs.oracle.com/cd/E19504-01/802-5753/6i9g71m3i/index.html netstat Command] {{kbd | key=<nowiki>netstat -tulpn | grep LISTEN</nowiki>}} e.g. | ** [https://docs.oracle.com/cd/E19504-01/802-5753/6i9g71m3i/index.html netstat Command] {{kbd | key=<nowiki>netstat -tulpn | grep LISTEN</nowiki>}} e.g. | ||
** [https://docs.docker.com/engine/reference/commandline/port/ docker port | Docker Documentation] | |||
Example output of netstat command | |||
<pre> | <pre> | ||
$ netstat -tulpn | grep LISTEN | $ netstat -tulpn | grep LISTEN | ||
| Line 70: | Line 107: | ||
// means the 80 port service is running | // means the 80 port service is running | ||
</pre> | </pre> | ||
* {{Win}} | |||
** Using the software [http://www.nirsoft.net/utils/cports.html CurrPorts] to check the process and port. e.g. Apache will not running if the 80 port was occupied by skype<ref>[http://stackoverflow.com/questions/4705005/how-to-solve-wamp-and-skype-conflict-on-windows-7 How to solve WAMP and Skype conflict on Windows 7? - Stack Overflow]</ref>. | |||
=== Check if a port is blocked by browser === | |||
Check if a port is blocked by browser<ref>[https://blog.miniasp.com/post/2022/05/02/Dont-use-ERR_UNSAFE_PORT-for-your-website?fbclid=IwAR2y9D60H-j8-5T1zJixTU-L2ydbn7LgnWpG1v53fyaKCyuuqx2MqfU80fI 開發與部署網站時需注意不要使用到 ERR_UNSAFE_PORT 不安全的埠號 | The Will Will Web]</ref> | |||
* {{Chrome}} [https://chromium.googlesource.com/chromium/src.git/+/refs/heads/master/net/base/port_util.cc#52 net/base/port_util.cc - chromium/src.git - Git at Google] | |||
* [https://fetch.spec.whatwg.org/#port-blocking Fetch Standard] 2.9. Port blocking | |||
=== Is the port opened for external users? === | === Is the port opened for external users? === | ||
| Line 123: | Line 169: | ||
# [http://technet.microsoft.com/en-us/sysinternals/bb897437 TCPView for Windows] | # [http://technet.microsoft.com/en-us/sysinternals/bb897437 TCPView for Windows] | ||
# [http://check-host.net/ Check server: Check host - online website monitoring, Check IP] "checks the possibility of a TCP connection to host's specified port from different locations around the world." quoted from website. {{access | date=2015-08-02}} | # [http://check-host.net/ Check server: Check host - online website monitoring, Check IP] "checks the possibility of a TCP connection to host's specified port from different locations around the world." quoted from website. {{access | date=2015-08-02}} | ||
== Related articles == | |||
* [https://errerrors.blogspot.com/2022/07/blog-post.html 怎樣排除網路連線逾時 (network connection timed out) 問題] | |||
== References == | == References == | ||
| Line 134: | Line 183: | ||
[[Category:MySQL]] | [[Category:MySQL]] | ||
[[Category:Linux]] | [[Category:Linux]] | ||
[[Category:Testing]] | |||