Test connectivity for the web service: Difference between revisions
| Line 14: | Line 14: | ||
*# (after telnet-ed the web 80 port, key in) {{kbd_plus | key1 = get | key2 = SPACE}}<ref>[http://www.simplescripts.de/http-check-port-80-telnet-command.htm HTTP Check Port 80 with the Telnet Command]</ref> | *# (after telnet-ed the web 80 port, key in) {{kbd_plus | key1 = get | key2 = SPACE}}<ref>[http://www.simplescripts.de/http-check-port-80-telnet-command.htm HTTP Check Port 80 with the Telnet Command]</ref> | ||
* curl: {{kbd | key = <nowiki>curl - | * curl<ref>[https://curl.se/docs/manpage.html curl - How To Use]</ref>: {{kbd | key = <nowiki>curl -vL http://IP:Port</nowiki>}} | ||
** commands e.g. | |||
*** (1) Write output to <file> instead of stdout using {{kbd | key = <nowiki>curl -voL https://www.google.com</nowiki>}} | |||
*** (2) Write output to stdout using {{kbd | key = <nowiki>curl -vL https://www.google.com</nowiki>}} or {{kbd | key = <nowiki>curl -voL /dev/null https://www.google.com</nowiki>}} | |||
*** (3) Write output to <file> with the remote file name using {{kbd | key = <nowiki>curl -vOL https://www.google.com/index.html</nowiki>}} | |||
** If failed. It will show the message: "failed: Connection refused" | ** If failed. It will show the message: "failed: Connection refused" | ||
* Linux [https://www.gnu.org/software/wget/ wget] software e.g. {{kbd | key = <nowiki>wget https://www.google.com</nowiki>}} | |||
* use the third-party website monitoring the services: [[Web Ping]] | * use the third-party website monitoring the services: [[Web Ping]] | ||
Revision as of 11:25, 4 April 2022
find the problem occurred: (1) local service at the server (localhost) (2) from LAN to server (3) from WAN to server
How to connect to the web service
If the service is the web server:
- (1) Open the browser, (2) Type the address: http://127.0.0.1 or http://the.domain
- Linux lynx command:
- telnet command
- telnet 127.0.0.1 <PORT> e.g. telnet 127.0.0.1 80 or telnet the.domain 80
- (after telnet-ed the web 80 port, key in) get + SPACE[3]
- curl[4]: curl -vL http://IP:Port
- 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"
- commands e.g.
- 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
- (optional) Install Telnet Client | Microsoft Docs on Win
. Bring telnet back on macOS high Sierra – Ayuth Mangmesap (blackSource) – Medium on macOS
- 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
- (for python 2.x) python -m SimpleHTTPServer <port>[5]
- (for python 3.x) python -m http.server <port>[6]
Test connectivity for the local web service
WAN ○ -------> ○ LAN -------> ● server
Check if your computer/server Is being assigned the IP Address
- Linux
: (1) Check the IP Address. ifconfig. (2) Re-assign the IP Address and restart the networking service. service network restart for CentOS[7] - Win
: Check the IP Address. ifconfig/all - More on Network problem
Is the web service alive
- Apache /etc/init.d/httpd status on CentOS7 [8]
- nginx sudo service nginx status on CentOS7
- Docker container docker ps to check if the container is running & expose the port[9]
Is the the port was occupied by other process?
Check the port if used by other protocol
- Linux
- nmap "Network exploration tool and security / port scanner." e.g. nmap -p 80,443 ip
- ss "utility to investigate sockets" e.g. ss -tnlp | grep 80 or using OR operator[10] ss -tnlp | grep '80\|443'
- ps List the current processes. Input ps -aux | grep "PORT_NUMBER" e.g. ps -aux | grep 443
- netstat Command netstat -tulpn | grep LISTEN e.g.
- Win
Using the software CurrPorts to check the process and port. e.g. Apache will not running if the 80 port was occupied by skype[11].
$ netstat -tulpn | grep LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN - // means the 80 port service is running
Is the port opened for external users?
Check the OS firewall or protected by antivirus software
- Linux
- iptables: (1) iptables -L to list all rules[12] (2) rule with smaller line-number will override the rule with larger line-number[13]
- FirewallD rules: (1) sudo firewall-cmd --get-default-zone return 'public' (2) sudo firewall-cmd --list-all --zone=public[14] (3) Allow port with FirewallD
- SELinux Policy Management: (1) After installed policycoreutils-python[15], input semanage port -l to list open ports. (2) Allow port with semanage.
- Win
Windows Firewall with Advanced Security -> configure firewall rules - protected by antivirus software?
- Linux
- connect to localhost ex: telnet 127.0.0.1 23 where 23 is the port number where the service running
- Install Telnet Client on Win
- if the local service is web server, you can also try lynx http://127.0.0.1 for Linux
- Install Telnet Client on Win
- double check the server/service logs
Test connectivity from LAN to the server
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
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:
- Down for everyone or just me? more on Web Ping
- Switch to different ISP? Is hardware firewall enabled?
- Is gateway alive?
- Is DNS alive?
- Is the external IP correct?
- If the firewall rule is IP specified, verify the IP if correct from What Is My IP Address? or web access log.
- Query the IP Address Details - ipinfo.io. e.g. Input the command curl ipinfo.io/ip[16] for macOS
& Linux
- Is the port was opened for external users? Open Port Check Tool - Port Forwarding Port Check Tool
- Is institutional/ISP firewall enabled? Contact your MIS. (Management information system) of your company or ISP?
other issue:
- bandwidth cost too much by certain users
- exceed the request limit of (hardware) firewall
- the external connection of updated Windows was down until reboot Win
- Amazon EC2 security group
- refresh browser cache: Refresh your cache - When hitting F5 just isn't enough!
Tools
CurrPorts: Monitoring TCP/IP network connections on Windows- PFPortCheck Program: check TCP/UDP port from localhost(where you installed the program) to portforward.com
- TCPView for Windows
- 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]
References
- ↑ Install and Use Lynx Browser on Ubuntu
- ↑ Lynx Users Guide v2.8.7
- ↑ HTTP Check Port 80 with the Telnet Command
- ↑ curl - How To Use
- ↑ 20.19. SimpleHTTPServer — Simple HTTP request handler — Python 2.7.17 documentation
- ↑ http.server — HTTP servers — Python 3.8.1 documentation
- ↑ How to restart the networking service? - Ask Ubuntu
- ↑ How to check running status of LAMP stack | E2E Networks Knowledgebase
- ↑ docker ps | Docker Documentation
- ↑ 7 Linux Grep OR, Grep AND, Grep NOT Operator Examples
- ↑ How to solve WAMP and Skype conflict on Windows 7? - Stack Overflow
- ↑ HowTos/Network/IPTables - CentOS Wiki
- ↑ How to edit iptables rules - FedoraProject
- ↑ How To Set Up a Firewall Using FirewallD on CentOS 7 | DigitalOcean
- ↑ semanage command not found on CentOS 7 and RHEL 7
- ↑ networking - Command for determining my public IP? - Ask Ubuntu
Troubleshooting of ...
- PHP, cUrl, Python, selenium, HTTP status code errors
- Database: SQL syntax debug, MySQL errors, MySQLTuner errors or PostgreSQL errors
- HTML/Javascript: Troubleshooting of javascript, XPath
- Software: Mediawiki, Docker, FTP problems, online conference software
- Test connectivity for the web service, Web Ping, Network problem, Web user behavior, Web scrape troubleshooting
Template