Jump to content

Test connectivity for the web service

From LemonWiki共筆

Find the problem occurred: (1) local service at the server (localhost) (2) from LAN to server (3) from WAN to server

🌐 Switch language: EN, 漢字


How to connect to the web service[edit]

If the service is the web server:

  • (1) Open the browser, (2) Type the address: http://127.0.0.1 or http://the.domain
  • curl<ref>curl - How To Use</ref>: curl -vL http://IP:Port
    • (optional if curl command was not installed) Learn how to install & run cURL on Windows/MacOSX/Linux | Ubidots Help Center
    • commands e.g.
      • (1) Write output to <file> instead of stdout using curl -voL https://www.google.com
      • (2) Write output to stdout using curl -vL https://www.google.com or curl -voL /dev/null https://www.google.com
      • (3) Write output to <file> with the remote file name using curl -vOL https://www.google.com/index.html
    • If failed. It will show the message: "failed: Connection refused"
  • Linux wget software e.g. wget https://www.google.com
  • use the third-party website monitoring the services: Web Ping

If the service is not the web server, use telnet instead

  1. (optional) Install Telnet Client | Microsoft Docs on Win . Bring telnet back on macOS high Sierra – Ayuth Mangmesap (blackSource) – Medium on macOS icon_os_mac.png
  2. 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 or Node.js was installed

Test connectivity for the local web service[edit]

WAN ○ -------> ○ LAN -------> ● server

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[edit]

Check if web service has started successfully?[edit]

Check if MySQL has started successfully?[edit]

Using lsof command[edit]

  • lsof -i:3306 on macOS icon_os_mac.png 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

COMMAND     PID      USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld    93034 account   29u  IPv4 0xxxx      0t0  TCP localhost:mysql (LISTEN)

Using ps command[edit]

  • ps aux | grep mysql on macOS icon_os_mac.png

Example output if MySQL has started successfully:

_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

Example output if MySQL has NOT started successfully:

ACCOUNT        12349   0.0  0.0 408645328   1648 s011  S+    2:14下午   0:00.00 grep mysql

Check if a port was occupied by other process?[edit]

Check the port if used by other protocol

Find process running on port

Example output of netstat command

$ netstat -tulpn | grep LISTEN

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      - 

// means the 80 port service is running

Check if a port is blocked by browser[edit]

Check if a port is blocked by browser<ref>開發與部署網站時需注意不要使用到 ERR_UNSAFE_PORT 不安全的埠號 | The Will Will Web</ref>


Is the port opened for external users?[edit]

Check the OS firewall or protected by antivirus software

Test connectivity from LAN to the server[edit]

WAN ○ -------> ● LAN -------> ● server

Testing on LAN (local network, subnet scope): The different servers between LAN or with the same ip class (ex: 1.2.3.*) and may not have the firewall limit. Private network / Private IP address

  • Is the service alive?
  • Connect to the internal IP eg: telnet 172.18.0.1 23 (1) IP start with 172.18... is Private IP Network Numbers (2) where 23 is the port number where the service running
  • If the local service is web server, you can also try to connect the internal IP e.g. lynx http://172.18.0.1 for Linux
  • Double check the server/service logs
  • Is the internal IP correct?

Test connectivity from WAN to the remote server[edit]

WAN ● -------> ● LAN -------> ● server

We met the trouble on WAN (wide area network). If we do no have the administrative permission, the tests we can do as follows:

other issue:

Tools[edit]

  1. Good.gif CurrPorts: Monitoring TCP/IP network connections on Windows
  2. PFPortCheck Program: check TCP/UDP port from localhost(where you installed the program) to portforward.com
  3. TCPView for Windows
  4. 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. [Last visited: 2015-08-02]

Related articles[edit]

References[edit]

<references />