কিভাবে কার্যকরভাবে আমার ওয়েব সার্ভারে HTTP অনুরোধ সমস্যা ডিবাগ?


0

আমি আমার ল্যান জুড়ে আমার ওয়েব সার্ভারের সাথে একটি অদ্ভুত সমস্যা হচ্ছে। HTTP অনুরোধ চিরতরে স্পিন কিন্তু একটি অর্থপূর্ণ ত্রুটি কোড দিতে না।

এই সমস্যাটি আমার এসএসএস রাউটার এবং আমার সিস্কো রাউটারে ঘটেছে, কিন্তু আমার পুরানো DLink রাউটারে বিরল ঘটনা ঘটে না। নিচে পার্থক্য কিছু বিশ্লেষণ।

[ফেব্রুয়ারী 10:30 PM আপডেট] আমি অ্যাপাচি থেকে Nginx সার্ভারে পরিবর্তন করার চেষ্টা করেছি (কেভিনের মন্তব্যের উপর ভিত্তি করে), এবং তারা একটি অভিন্ন ফলাফল প্রদর্শন করে। সার্ভারের বাইরে টিসিপি প্যাকেট সমস্যাগুলি প্রদর্শিত হবে (নীচের tcpdumps দেখুন)। আমি টিসিপি ডেটাপুশ আকারের সাথেও পরীক্ষা করেছি এবং অনুরোধের আকারের সাথে ব্যর্থতার সম্ভাবনার সন্ধান পেয়েছি। ~ 800 বাইট কম হলে, এটি বিরল ACK পাওয়ার আগে 5-10 লুপ করার পরে অর্ধেক সময় লোড করতে পরিচালিত করে। ~ 2000 বাইট এ, এটি খুব কমই কিন্তু কখনও কখনও কাজ করে। ~ 6000 বাইট এ, কোন উপায় নেই। DLink রাউটার এই ফাইলের মাপের যে কোনওতে অবিলম্বে কাজ করে। আমি লুপব্যাক ইন্টারফেসে কোন হস্তক্ষেপ প্যাকেট আসছে কিনা দেখতে চেক করেছি, কিছুই নেই। আমি তারের / পোর্টগুলি স্যুইচ করেছি (কিন্তু এনআইসি এর কেবলমাত্র এটিই নেই)।

আমি সহজ পৃষ্ঠার জন্য ম্যানুয়াল HTTP অনুরোধ করার জন্য টেলনেট ব্যবহার করার চেষ্টা করেছি:

telnet 192.168.0.101 80
GET /index.html HTTP/1.0

একই সমস্যা আছে, কয়েক সেকেন্ডের জন্য ঝুলন্ত।

নেটস্ট্যাট আউটপুট:

simon@fire:~$ sudo netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1056/sshd       
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      1147/xinetd     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1482/sendmail: MTA:
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1064/mysqld
tcp        0      0 127.0.0.1:587           0.0.0.0:*               LISTEN         1482/sendmail: MTA:
tcp6       0      0 :::21                   :::*                    LISTEN      1066/vsftpd     
tcp6       0      0 :::22                   :::*                    LISTEN      1056/sshd       
tcp6       0      0 :::80                   :::*                    LISTEN      1234/apache2    

অপাচা বন্ধ করা এবং নেটবার্ট ব্যবহার করার চেষ্টা একই পোর্টে অবিলম্বে কাজ করে:

simon@fire:~$ sudo service apache2 stop
simon@fire:~$ { echo -ne "HTTP/1.0 200 OK\r\nContent-Length: 13\r\n\r\n"; echo "Hello World!"; } | sudo nc -l 80
GET / HTTP/1.1
Host: 192.168.0.101
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
(On client --> Works immediately)

Tcpdump ডাম্পটি পুশ প্যাকেটের পরে একটি অনুপস্থিত "ACK 2921" প্যাকেট নির্দেশ করে বলে মনে হচ্ছে। তারপর সার্ভার পুশ প্যাকেট পুনরাবৃত্তি করে, এখনও কোন ACK। তারপর এটি একটি সমাপ্তি F প্যাকেট এর আগে SEQ 1: 1461 ACKs এর একটি সিরিজ করতে দেয়, ছেড়ে দিতে মনে হচ্ছে।

আমি tcp প্যাকেটগুলিতে কোন বিশেষজ্ঞ নই তবে এটি ব্যর্থ ক্ষেত্রে (ASUS রাউটার) বনাম সফল ক্ষেত্রে বিশ্লেষণ (ডিলিং রাউটার) থেকে হয়। DLink এ, একটি পরিষ্কার ACK 2921 প্যাকেট আছে। এর আগে, উভয় একই আউটপুট প্রদর্শন।

একটি সুস্পষ্ট পার্থক্য হল যে DLL এর সাথে সার্ভারটি তার আইপি (192.168.0.104) দ্বারা ক্লায়েন্টটি দেখছে, যখন এএসএস এ সার্ভারটি তার হোস্টনাম (জিন) দ্বারা ক্লায়েন্টকে দেখছে - তবে তৃতীয় রাউটার (সিস্কো) নিয়মগুলি পরীক্ষা করছে সমস্যাটির অংশ হিসাবে এটি আইপি দ্বারা ক্লায়েন্টকে দেখায় তবে এটি অন্যথায় ASUS হিসাবে আচরণ করে।

simon@fire:~$ sudo tcpdump -i eth0 port 80 or port 443
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

19:43:37.815448 IP Gin.60309 > fire.http: Flags [S], seq 4284943091, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
19:43:37.815490 IP fire.http > Gin.60309: Flags [S.], seq 1854464822, ack 4284943092, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
19:43:37.815684 IP Gin.60309 > fire.http: Flags [.], ack 1, win 16425, length 0
19:43:37.816701 IP Gin.60309 > fire.http: Flags [P.], seq 1:344, ack 1, win 16425, length 343: HTTP: GET / HTTP/1.1
19:43:37.816729 IP fire.http > Gin.60309: Flags [.], ack 344, win 237, length 0
19:43:37.818341 IP fire.http > Gin.60309: Flags [.], seq 1:2921, ack 344, win 237, length 2920: HTTP: HTTP/1.1 200 OK
19:43:37.818357 IP fire.http > Gin.60309: Flags [P.], seq 2921:4155, ack 344, win 237, length 1234: HTTP

-- There seems to be a missing [.] ack 2921 packet here!? Then the server tries again --

19:43:37.827311 IP fire.http > Gin.60309: Flags [P.], seq 2921:4155, ack 344, win 237, length 1234: HTTP
19:43:38.051329 IP fire.http > Gin.60309: Flags [.], seq 1:1461, ack 344, win 237, length 1460: HTTP: HTTP/1.1 200 OK
19:43:38.499322 IP fire.http > Gin.60309: Flags [.], seq 1:1461, ack 344, win 237, length 1460: HTTP: HTTP/1.1 200 OK
19:43:39.395318 IP fire.http > Gin.60309: Flags [.], seq 1:1461, ack 344, win 237, length 1460: HTTP: HTTP/1.1 200 OK
19:43:41.191327 IP fire.http > Gin.60309: Flags [.], seq 1:1461, ack 344, win 237, length 1460: HTTP: HTTP/1.1 200 OK
19:43:42.823524 IP fire.http > Gin.60309: Flags [F.], seq 4155, ack 344, win 237, length 0
19:43:42.823736 IP Gin.60309 > fire.http: Flags [.], ack 1, win 16425, length 0
19:43:44.783318 IP fire.http > Gin.60309: Flags [.], seq 1:1461, ack 344, win 237, length 1460: HTTP: HTTP/1.1 200 OK
19:43:51.967338 IP fire.http > Gin.60309: Flags [.], seq 1:1461, ack 344, win 237, length 1460: HTTP: HTTP/1.1 200 OK
19:43:52.825832 IP Gin.60309 > fire.http: Flags [.], seq 343:344, ack 1, win 16425, length 1: HTTP
19:43:52.825875 IP fire.http > Gin.60309: Flags [.], ack 344, win 237, options [nop,nop,sack 1 {343:344}], length 0
19:44:02.826426 IP Gin.60309 > fire.http: Flags [.], seq 343:344, ack 1, win 16425, length 1: HTTP
19:44:02.826464 IP fire.http > Gin.60309: Flags [.], ack 344, win 237, options [nop,nop,sack 1 {343:344}], length 0
19:44:06.335330 IP fire.http > Gin.60309: Flags [.], seq 1:1461, ack 344, win 237, length 1460: HTTP: HTTP/1.1 200 OK
19:44:12.827029 IP Gin.60309 > fire.http: Flags [.], seq 343:344, ack 1, win 16425, length 1: HTTP
19:44:12.827067 IP fire.http > Gin.60309: Flags [.], ack 344, win 237, options [nop,nop,sack 1 {343:344}], length 0
19:44:22.827563 IP Gin.60309 > fire.http: Flags [.], seq 343:344, ack 1, win 16425, length 1: HTTP
19:44:22.827592 IP fire.http > Gin.60309: Flags [.], ack 344, win 237, options [nop,nop,sack 1 {343:344}], length 0
19:44:32.828133 IP Gin.60309 > fire.http: Flags [.], seq 343:344, ack 1, win 16425, length 1: HTTP
19:44:32.828157 IP fire.http > Gin.60309: Flags [.], ack 344, win 237, options [nop,nop,sack 1 {343:344}], length 0
19:44:35.039322 IP fire.http > Gin.60309: Flags [.], seq 1:1461, ack 344, win 237, length 1460: HTTP: HTTP/1.1 200 OK
19:44:42.828692 IP Gin.60309 > fire.http: Flags [.], seq 343:344, ack 1, win 16425, length 1: HTTP
19:44:42.828734 IP fire.http > Gin.60309: Flags [.], ack 344, win 237, options [nop,nop,sack 1 {343:344}], length 0
19:45:08.571555 IP Gin.60309 > fire.http: Flags [F.], seq 344, ack 1, win 16425, length 0
19:45:08.571581 IP fire.http > Gin.60309: Flags [.], ack 345, win 237, length 0

(Pressed CTRL C after 30 seconds)
^C
32 packets captured
32 packets received by filter
0 packets dropped by kernel

Tcpdump যখন DLink রাউটার ব্যবহার করে (জরিমানা কাজ) দৃশ্যকল্প নীচের হয়:

simon@fire:/sbin$ sudo tcpdump -B 4096 -i eth0 port 80 or port 443
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:48:20.209920 IP 192.168.0.104.53696 > fire.http: Flags [S], seq 1043812686, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
21:48:20.209954 IP fire.http > 192.168.0.104.53696: Flags [S.], seq 639467520, ack 1043812687, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
21:48:20.210290 IP 192.168.0.104.53696 > fire.http: Flags [.], ack 1, win 16425, length 0
21:48:20.211575 IP 192.168.0.104.53696 > fire.http: Flags [P.], seq 1:344, ack 1, win 16425, length 343: HTTP: GET / HTTP/1.1
21:48:20.211603 IP fire.http > 192.168.0.104.53696: Flags [.], ack 344, win 237, length 0
21:48:20.213190 IP fire.http > 192.168.0.104.53696: Flags [.], seq 1:2921, ack 344, win 237, length 2920: HTTP: HTTP/1.1 200 OK
21:48:20.213199 IP fire.http > 192.168.0.104.53696: Flags [P.], seq 2921:4155, ack 344, win 237, length 1234: HTTP
21:48:20.213959 IP 192.168.0.104.53696 > fire.http: Flags [.], ack 2921, win 16425, length 0
21:48:20.415317 IP fire.http > 192.168.0.104.53696: Flags [P.], seq 2921:4155, ack 344, win 237, length 1234: HTTP
21:48:20.416066 IP 192.168.0.104.53696 > fire.http: Flags [.], ack 4155, win 16116, options [nop,nop,sack 1 {2921:4155}], length 0
21:48:25.215387 IP fire.http > 192.168.0.104.53696: Flags [F.], seq 4155, ack 344, win 237, length 0
21:48:25.215864 IP 192.168.0.104.53696 > fire.http: Flags [.], ack 4156, win 16116, length 0
21:48:25.216086 IP 192.168.0.104.53696 > fire.http: Flags [F.], seq 344, ack 4156, win 16116, length 0
21:48:25.216093 IP fire.http > 192.168.0.104.53696: Flags [.], ack 345, win 237, length 0
^C
14 packets captured
14 packets received by filter
0 packets dropped by kernel

আমি ফায়ারওয়াল চেক করেছি, "অস্বীকার" নিয়মগুলি আঘাত করে কোন প্যাকেট পাওয়া যায় নি, এবং সুপারিশকৃত iptables কমান্ডটিও কার্যকর করেছে কিন্তু এটি সাহায্য করে নি:    / sbin / iptables -I INPUT -P tcp --ddport 80 -j ACCEPT

ifconfig আউটপুট:

eth0  Link encap:Ethernet  HWaddr 00:16:e6:85:ad:a1  
      inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
      inet6 addr: fe80::216:e6ff:fe85:ada1/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:4660 errors:0 dropped:2 overruns:0 frame:0
      TX packets:1769 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:399847 (399.8 KB)  TX bytes:210999 (210.9 KB)
      Interrupt:17 

lo    Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:47 errors:0 dropped:0 overruns:0 frame:0
      TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:15869 (15.8 KB)  TX bytes:15869 (15.8 KB)

iptables আউটপুট:

~$ sudo iptables -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination         
f2b-sshd   tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 22
ufw-before-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-input  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ufw-before-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-forward  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ufw-before-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-output  all  --  0.0.0.0/0            0.0.0.0/0           

Chain f2b-sshd (1 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-after-forward (1 references)
target     prot opt source               destination         

Chain ufw-after-input (1 references)
target     prot opt source               destination         
ufw-skip-to-policy-input  udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:137
ufw-skip-to-policy-input  udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:138
ufw-skip-to-policy-input  tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:139
ufw-skip-to-policy-input  tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:445
ufw-skip-to-policy-input  udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:67
ufw-skip-to-policy-input  udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:68
ufw-skip-to-policy-input  all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (1 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-input (1 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-output (1 references)
target     prot opt source               destination         

Chain ufw-after-output (1 references)
target     prot opt source               destination         

Chain ufw-before-forward (1 references)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 3
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 4
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 11
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 12
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ufw-user-forward  all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-input (1 references)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ufw-logging-deny  all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 3
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 4
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 11
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 12
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp spt:67 dpt:68
ufw-not-local  all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     udp  --  0.0.0.0/0            224.0.0.251          udp dpt:5353
ACCEPT     udp  --  0.0.0.0/0            239.255.255.250      udp dpt:1900
ufw-user-input  all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-logging-forward (1 references)
target     prot opt source               destination         

Chain ufw-before-logging-input (1 references)
target     prot opt source               destination         

Chain ufw-before-logging-output (1 references)
target     prot opt source               destination         

Chain ufw-before-output (1 references)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ufw-user-output  all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-logging-allow (0 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] "

Chain ufw-logging-deny (2 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID limit: avg 3/min burst 10
LOG        all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-not-local (1 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
RETURN     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type MULTICAST
RETURN     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST
ufw-logging-deny  all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-reject-forward (1 references)
target     prot opt source               destination         

Chain ufw-reject-input (1 references)
target     prot opt source               destination         

Chain ufw-reject-output (1 references)
target     prot opt source               destination         

Chain ufw-skip-to-policy-forward (0 references)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-input (7 references)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-output (0 references)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-track-forward (1 references)
target     prot opt source               destination         

Chain ufw-track-input (1 references)
target     prot opt source               destination         

Chain ufw-track-output (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            ctstate NEW
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            ctstate NEW

Chain ufw-user-forward (1 references)
target     prot opt source               destination         

Chain ufw-user-input (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443 /* 'dapp_Nginx%20Full' */
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 /* 'dapp_Nginx%20HTTP' */

Chain ufw-user-limit (0 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] "
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain ufw-user-logging-forward (0 references)
target     prot opt source               destination         

Chain ufw-user-logging-input (0 references)
target     prot opt source               destination         

Chain ufw-user-logging-output (0 references)
target     prot opt source               destination         

Chain ufw-user-output (1 references)
target     prot opt source               destination         

পোর্ট 80 তে সার্ভার থেকে ইন্টারনেট অ্যাক্সেস করার চেষ্টা করলেও অনুরূপ সমস্যা হয় (অত্যন্ত ধীর, স্পিনস বা কখনও কখনও খুব দীর্ঘ সময় পরে একটি সহজ পৃষ্ঠা লোড করতে পারে)।

এটি একটি LAMP সার্ভার (উবুন্টু 16.4)।

আগাম ধন্যবাদ!


telnet 21 শতকের মধ্যে ??? আপনি সাহসী হন ... যদি এই সার্ভারটি বন্য ইন্টারনেটের মুখোমুখি হয় তবে আমি দৃঢ়ভাবে পরামর্শ দিচ্ছি যে আপনি এসএসএইচ এ স্যুইচ করুন। আপনার সমস্যা সম্পর্কে, চালান sudo netstat -lntp এবং আপনার প্রশ্নের তার ফলাফল যোগ করুন
Alex

ধন্যবাদ অ্যালেক্স - আমি প্রশ্নটি নেটস্ট্যাট-এলএনটিপি আউটপুট যোগ করেছি। সেখানে আকর্ষণীয় কিছু? :)
Horseman

@ অ্যালেক্স - telnet কমান্ড ইস্যু করার জন্য এখানে ব্যবহার করা হচ্ছে না তবে কেবল একটি কাঁচা HTTP অনুরোধ জারি করতে। যদিও nc এই জন্য এটি একটি বিট ভাল কোন নিরাপত্তা ঝুঁকি। নিরাপত্তা ঝুঁকি একটি টেলনেট চলমান হয় সার্ভার টেলনেট ব্যবহার করে না হুকুম নিজে একটি সকেট মাধ্যমে তথ্য পাঠাতে।
LawrenceC

@ লরেন্সসি এগ্রি, যখন আমি আজকে লোকেদের টেলনেট সার্ভারগুলি ব্যবহার করে দেখি তখন এটি আমাকে একটি জঘন্য লড়াইয়ে লাল কাপড় হিসাবে প্রভাবিত করে, তবে netstat আউটপুট, অপারেটিং সিস্টেমের সার্ভার ২4 পোর্টে ইনকামিং সংযোগের জন্য শোনাচ্ছে, তাই এটি এখনও কেস। যাইহোক, আমি আপনার মন্তব্য প্রশংসা করি;) আগে netstat আউটপুট এটা আমার পাশ থেকে সত্যিই ভাল মন্তব্য মত শোনাচ্ছে না!
Alex

আহ, বিষ্ঠা হাঁ, এখন যে আমি আসলে ঘনিষ্ঠভাবে লাগছিল, আপনি ঠিক।
LawrenceC

উত্তর:


1

আপনি সার্ভারে tcpdump চলমান চেষ্টা করেছেন?

sudo tcpdump -i eth0 port 80 or port 443

আপনি যদি প্যাকেটগুলি না দেখেন তবে আপনার ফায়ারওয়ালটি চেক করতে আপনাকে দ্বিগুণ করতে হবে।

এছাড়াও আপনি এ্যাপacheটি বন্ধ করে পোর্ট 80 এ একটি অস্থায়ী নেটক্যাট ওয়েবসার্ভার চালাতে পারেন

{ echo -ne "HTTP/1.0 200 OK\r\nContent-Length: 13\r\n\r\n"; echo "Hello World!"; } | sudo nc -l 80

সম্পাদনা:

আপনি একটি ফাইল লিখতে tcpdump ব্যবহার করতে পারেন এবং তারপরে স্থানান্তর করতে পারেন এবং ক্লায়েন্ট মেশিনে এটি খুলতে পারেন wireshark সহ প্যাকেটগুলিতে কোন তথ্য স্থানান্তরিত হচ্ছে তা দেখতে।

sudo tcpdump -i eth0 port 80 or port 443 -w httpdebug.pcap

তারপর wireshark সঙ্গে একটি মেশিনে যে ফাইল অনুলিপি। আপনি উইন্ডোজ মেশিনে wireshark ইনস্টল করার প্রয়োজন হলে আপনি winpcap ইনস্টল করতে পারেন।

আপনি চেষ্টা করতে পারেন অন্য কিছু পদক্ষেপ:

  • Apache হচ্ছে শুধু "হ্যালো ওয়ার্ল্ড!" এর সাথে একটি ফাইল পরিবেশন করে। অথবা এটি খুব ছোট কিছু।
  • আপনার index.html চেষ্টা এবং হোস্ট করার জন্য netcat ওয়েবসার্ভার ব্যবহার করে

{ echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c <index.html)\r\n\r\n"; cat index.html; } | sudo nc -l 80

যদি পরের কাজটি হয় তবে অনেকগুলি র্যান্ড্ডার ব্লক করা সামগ্রী বা অ্যাপাচে কিছু ভুল কনফিগারেশন হতে পারে। আমি কনফিগ ইস্যুর জন্য অনুসন্ধান করার পরিবর্তে, apache পুনরুদ্ধার এবং পুনরায় ইনস্টল করার চেষ্টা করব।


চেক ফায়ারওয়াল বিট জন্য +1 - চালানোর চেষ্টা করুন "/ sbin / iptables -I INPUT -p tcp --dport 80 -j সার্ভারে ACCEPT এটি পুনরায় চালু না হওয়া পর্যন্ত 80 পোর্টে ট্র্যাফিক গ্রহণ করার অনুমতি দেয় / ফায়ারওয়াল পুনরায় চালু হয়।
davidgo

ধন্যবাদ অনেক কেভিন এবং ডেভিডগো - আমি tcpdump, এবং বর্ণিত নেটক্যাট তথ্যটি যোগ করেছি। এছাড়াও iptables চেষ্টা (কোন সাহায্য)। নেটক্যাটটি পোর্ট 80 এ কাজ করে। টিসিপিডম্প এটি একই অনুরোধের পুনরাবৃত্তিটি দেখায় বলে মনে হচ্ছে ... কিন্তু কোনও প্রকৃত ড্রপ প্যাকেট নেই ?!
Horseman

এটি অগত্যা একটি ভাল উত্তর (আপনার সমস্যা স্থির করা) নয়, তবে আপনি apache সামনে বা প্রতিস্থাপন করার আগে nginx চালানোর কথা বিবেচনা করেছেন। আমি nginx ব্যবহার এবং এটি কনফিগার এবং ব্যবহার করা অনেক সহজ পাওয়া যায়। এটা স্ট্যাটিক কন্টেন্ট পরিবেশন করা (অনুমিতভাবে) আরো বেশি দক্ষ।
Kevin

কেভিন, আমি nginx সম্পর্কে শুনেনি, আমি এটা দেখতে হবে কিন্তু আশা করি আমি apache সঙ্গে এটি সমাধান করতে পারেন।
Horseman

Tcpdump এর জন্য, মনে হচ্ছে এসিকে ২921 টি ধাক্কা পকেটের সাথে ... এবং আকর্ষণীয় রাউটারে যেখানে সার্ভার ক্লায়েন্টকে তার আইপি দ্বারা দেখে এবং তার "জিন" হোস্টনামটি নোট করে, সবকিছু কাজ করে, এবং টি। এর উপর আরো কিছু তথ্য সহ উত্তরটি আপডেট করব। 19: 43: 37.818357 আইপি fire.http & gt; জিএন.60309: পতাকা [পি।], সেক ২921: 4155, এএক 344, 237 জিতেছে, দৈর্ঘ্য 1২34: HTTP - 2২২1 এর জন্য এসিকে হারিয়েছে, এবং এটি কখনই আসে না। - 19: 43: 37.8২7311 আইপি ফায়ার.http> জিএন.60309: পতাকা [পি।], সেক ২921: 4155, এ্যাক 344, জয় 237, দৈর্ঘ্য 1234: HTTP
Horseman

0

অনুসারে sudo netstat -lntp আউটপুট, আপনার apache এর সেটআপ আইপিভি 4 তে শোনে না।

আপনি আপনার apache এর কনফিগারেশন যোগ করতে হবে:

#NameVirtualHost *:80
Listen 0.0.0.0:80

আপনি যদি আপনার সাইটে SSL প্রোটোকল ব্যবহার করেন তবে এটিকে যোগ করুন:

<IfModule ssl_module>
#   NameVirtualHost *:443
    Listen 0.0.0.0:443
</IfModule>

<IfModule mod_gnutls.c>
#   NameVirtualHost *:443
    Listen 0.0.0.0:443
</IfModule>

এই সেটিংস Apache 2.4 + সংস্করণে প্রযোজ্য। আপনি 2.2 সংস্করণ ব্যবহার করে তারপর যোগ করুন

NameVirtualHost *:80
NameVirtualHost *:443

মধ্যে (apache|httpd|ports)\.conf


আপনি উল্লেখ হিসাবে আমি এটা আপডেট, কিন্তু এটি সাহায্য করে না। এবং গবেষণায়, এটি পূর্ববর্তী সেটিংসে আইপিভি 4 এবং v6 উভয় কাজ দেখে মনে হচ্ছে তবে নেটস্ট্যাটটি এটি টিসিপি 6 হিসাবে প্রতিনিধিত্ব করে, এটি সম্পর্কে কিছু তথ্য এখানে লিংক
Horseman

@ হর্সমান "এটি পূর্ববর্তী সেটিংসে আইপিভি 4 এবং v6 কাজ উভয়ই দেখে মনে হচ্ছে তবে নেটস্ট্যাটটি এটি টিসিপি 6 হিসাবে প্রতিনিধিত্ব করে" - না, এটি হওয়া উচিত নয়। আপনি ব্যবহার করেন Listen 0.0.0.0:80 এটা কার্যকরভাবে TCP6 উপর শ্রোতা নিষ্ক্রিয়। আপনি আপনার apache সার্ভার restated হয়নি ( sudo service apache2 restart ) আপনি পরিবর্তন যোগ পরে আমি উল্লেখ?
Alex

হ্যাঁ, সার্ভার পুনরায় আরম্ভ। সমস্যাটি ipv4 / v6 এর সাথে সম্পর্কিত বলে মনে হচ্ছে না। (যেহেতু উভয় ipv4 / v6 সক্রিয় সঙ্গে nginx সার্ভার চেষ্টা করেছেন)
Horseman

@ হর্সমান আপনি এই কমান্ড থেকে কোনও আউটপুট পেতে পারবেন: wget -O - http://127.0.0.1 ? আপনি আউটপুট যোগ করতে পারে ifconfig এবং iptables -L -n
Alex

আমি উপরের ifconfig এবং iptables আউটপুট যোগ। Wget -O ব্যবহার করে - 127.0.0.1 ভাল কাজ মনে হচ্ছে, সম্পূর্ণরূপে এইচটিএমএল পাতা প্রদর্শন করে। পরামর্শ দেওয়ার জন্য ধন্যবাদ, আপনি আমার লাইফলাইন: o)
Horseman
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.