Score:1

nginx ไม่ยอมรับการเชื่อมต่อจาก IP ภายนอก

ธง mc

ฉันมีเซิร์ฟเวอร์ Ubuntu และติดตั้ง nginx และไม่ยอมรับการเชื่อมต่อจาก IP ภายนอก (ฉันเห็น ERR_CONNECTION_REFUSED เมื่อพยายามส่งคำขอจากเบราว์เซอร์)

Nginx กำลังทำงาน มันตอบสนองเมื่อฉันทำการร้องขอในเครื่องหรือผ่านการส่งต่อพอร์ต ssh

80 นอกจากนี้ยังเปิด: sudo tcpdump พอร์ต 80

tcpdump: เอาต์พุต verbose ถูกระงับ ใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลแบบเต็ม
กำลังฟัง ens3, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการจับภาพ 262144 ไบต์
21:43:22.336738 IP instance-20210822-2338.subnet07230103.vcn07230103.oraclevcn.com.54174 > 169.254.169.254.http: ค่าสถานะ [.], ack 470550867, ชนะ 472, ตัวเลือก [nop,nop,TS 8 val 235823180r 13528r ], ความยาว 0
21:43:22.336873 IP 169.254.169.254.http > อินสแตนซ์-20210822-2338.subnet07230103.vcn07230103.oraclevcn.com.54174: ค่าสถานะ [.], ack 1, ชนะ 38, ตัวเลือก [nop,nop,TS val 1049103285 ecr 60222285 ecr ], ความยาว 0
21:43:29.002266 IP instance-20210822-2338.subnet07230103.vcn07230103.oraclevcn.com.54176 > 169.254.169.254.http: ค่าสถานะ [S], seq 1921592569, ชนะ 62720, ตัวเลือก [mss 352TS 8 valecr 8 valecr 8960, sackr 8 valecr ตกลง 0,nop,wscale 7], ความยาว 0
21:43:29.002425 IP 169.254.169.254.http > instance-20210822-2338.subnet07230103.vcn07230103.oraclevcn.com.54176: ค่าสถานะ [S.], seq 1203946486, ack 1921592570, ชนะ 180msns, 6, ตัวเลือก 60msops9 nop,TS val 1049109950 ecr 2352888022,nop,wscale 9], ความยาว 0

ฉันจะดีบักได้อย่างไรว่าทำไม nginx ไม่ได้รับคำขอ

ยูพีดี nginx -T เอาต์พุต

nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ไวยากรณ์ใช้ได้
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/nginx.conf สำเร็จ
# ไฟล์กำหนดค่า /etc/nginx/nginx.conf:
ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;

เหตุการณ์ {
    worker_connections 768;
    # multi_accept บน;
}

http {

    ##
    # การตั้งค่าพื้นฐาน
    ##

    ส่งไฟล์บน;
    tcp_nopush บน;
    tcp_nodelay บน;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # ปิด server_tokens;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect ปิด;

    รวม /etc/nginx/mime.types;
    แอปพลิเคชัน default_type/octet-stream;

    ##
    # การตั้งค่า SSL
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # วาง SSLv3 อ้างอิง: พุดเดิ้ล
    เปิด ssl_prefer_server_ciphers;

    ##
    # การตั้งค่าการบันทึก
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # การตั้งค่า Gzip
    ##

    เปิด gzip;

    # gzip_vary บน;
    # gzip_proxyed ใด ๆ ;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types ข้อความ/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/ข้อความจาวาสคริปต์/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+rss ข้อความ/จาวาสคริปต์;

    ##
    # การกำหนดค่าโฮสต์เสมือน
    ##

    รวม /etc/nginx/conf.d/*.conf;
    รวม /etc/nginx/sites-enabled/*;
}


#จดหมาย {
# # ดูตัวอย่างสคริปต์การตรวจสอบได้ที่:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "ผู้ใช้";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# เซิร์ฟเวอร์ {
# ฟัง localhost:110;
#โปรโตคอลpop3;
# เปิดพร็อกซี;
# }
#
# เซิร์ฟเวอร์ {
# ฟัง localhost:143;
# โปรโตคอล imap;
# เปิดพร็อกซี;
# }
#}

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-image-filter.conf:
load_module โมดูล/ngx_http_image_filter_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:
load_module โมดูล/ngx_http_xslt_filter_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-mail.conf:
load_module โมดูล/ngx_mail_module.so;

# ไฟล์การกำหนดค่า /etc/nginx/modules-enabled/50-mod-stream.conf:
load_module โมดูล/ngx_stream_module.so;

# ไฟล์กำหนดค่า /etc/nginx/mime.types:

ประเภท {
    ข้อความ/html html htm shtml;
    ข้อความ/css css;
    ข้อความ/xml xml;
    รูปภาพ/gif gif;
    รูปภาพ/jpeg jpeg jpg;
    แอปพลิเคชัน/จาวาสคริปต์ js;
    แอ็พพลิเคชัน/atom+xml อะตอม;
    แอปพลิเคชัน/rss+xml rss;

    ข้อความ/mathml mml;
    ข้อความ/ธรรมดา txt;
    text/vnd.sun.j2me.app-descriptor jad;
    ข้อความ/vnd.wap.wml wml;
    ข้อความ/x-คอมโพเนนต์ htc;

    รูปภาพ/png png;
    รูปภาพ/tiff tif tiff;
    ภาพ/vnd.wap.wbmp wbmp;
    ไอคอนรูปภาพ/x-icon;
    ภาพ/x-jng jng;
    ภาพ/x-ms-bmp bmp;
    ภาพ/svg+xml svg svgz;
    รูปภาพ/เว็บเพจ เว็บเพจ;

    แอปพลิเคชัน/ฟอนต์-woff woff;
    แอปพลิเคชัน / java-archive jar war ear;
    แอปพลิเคชัน/json json;
    แอปพลิเคชัน/mac-binhex40 hqx;
    เอกสารแอปพลิเคชัน/msword;
    ใบสมัคร/pdf pdf;
    ใบสมัคร/postscript ps eps ai;
    แอปพลิเคชัน/rtf rtf;
    แอปพลิเคชัน/vnd.apple.mpegurl m3u8;
    แอปพลิเคชัน/vnd.ms-excel xls;
    application/vnd.ms-fontobject eot;
    แอปพลิเคชัน/vnd.ms-powerpoint ppt;
    แอปพลิเคชัน/vnd.wap.wmlc wmlc;
    application/vnd.google-earth.kml+xml kml;
    แอปพลิเคชัน/vnd.google-earth.kmz kmz;
    แอปพลิเคชัน/x-7z-บีบอัด 7z;
    ใบสมัคร/x-cocoa cco;
    แอปพลิเคชัน/x-java-archive-diff jardiff;
    แอปพลิเคชัน/x-java-jnlp-file jnlp;
    เรียกใช้แอปพลิเคชัน / x-makeself;
    แอปพลิเคชัน/x-perl pl pm;
    แอปพลิเคชัน/x-pilot prc pdb;
    แอปพลิเคชั่น/x-rar-บีบอัด rar;
    แอปพลิเคชั่น / x-redhat-package-manager รอบต่อนาที;
    ใบสมัคร / ทะเล x-sea;
    แอปพลิเคชั่น/x-shockwave-แฟลช swf;
    แอปพลิเคชั่น / นั่ง x-stuffit;
    ใบสมัคร/x-tcl tcl tk;
    ใบสมัคร/x-x509-ca-cert จาก pem crt;
    แอปพลิเคชัน/x-xpinstall xpi;
    แอปพลิเคชัน/xhtml+xml xhtml;
    แอปพลิเคชัน/xspf+xml xspf;
    แอปพลิเคชั่น / ซิปซิป;

    แอปพลิเคชัน / octet-stream bin exe dll;
    แอ็พพลิเคชัน/octet-stream deb;
    แอปพลิเคชัน/octet-stream dmg;
    แอปพลิเคชั่น/octet-stream iso img;
    แอปพลิเคชัน/ออคเต็ตสตรีม msi msp msm;

    แอปพลิเคชัน/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.presentationml.การนำเสนอ pptx;

    เสียง/midi กลาง midi kar;
    เสียง/mpeg mp3;
    เสียง/ogg ogg;
    เสียง/x-m4a m4a;
    เสียง/x-realaudio ra;

    วิดีโอ/3gpp 3gpp 3gp;
    วิดีโอ/mp2t ts;
    วิดีโอ/mp4 mp4;
    วิดีโอ/mpeg mpeg mpg;
    วิดีโอ/quicktime mov;
    วิดีโอ/เว็บเอ็ม เว็บเอ็ม;
    วิดีโอ/x-flv flv;
    วิดีโอ/x-m4v m4v;
    วิดีโอ/x-mng mng;
    วิดีโอ/x-ms-asf asx asf;
    วิดีโอ/x-ms-wmv wmv;
    วิดีโอ/x-msvideo avi;
}

# ไฟล์กำหนดค่า /etc/nginx/sites-enabled/default:
##
# คุณควรดู URL ต่อไปนี้เพื่อทำความเข้าใจที่แน่นอน
# ของไฟล์การกำหนดค่า Nginx เพื่อปลดปล่อยพลังของ Nginx ได้อย่างเต็มที่
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# ในกรณีส่วนใหญ่ ผู้ดูแลระบบจะลบไฟล์นี้ออกจากไซต์ที่เปิดใช้งาน/ และ
# ปล่อยให้เป็นข้อมูลอ้างอิงภายในไซต์ที่มีอยู่ซึ่งจะยังคงอยู่ต่อไป
# อัปเดตโดยทีมบรรจุภัณฑ์ nginx
#
# ไฟล์นี้จะโหลดไฟล์การกำหนดค่าที่ผู้อื่นให้มาโดยอัตโนมัติ
# แอปพลิเคชัน เช่น Drupal หรือ Wordpress แอปพลิเคชันเหล่านี้จะทำขึ้น
# อยู่ภายใต้เส้นทางที่มีชื่อแพ็คเกจนั้น เช่น /drupal8
#
# โปรดดู /usr/share/doc/nginx-doc/examples/ สำหรับตัวอย่างโดยละเอียดเพิ่มเติม
##

# การกำหนดค่าเซิร์ฟเวอร์เริ่มต้น
#
เซิร์ฟเวอร์ {
    ฟัง 80 default_server;

    # การกำหนดค่า SSL
    #
    # ฟัง 443 ssl default_server;
    # ฟัง [::]:443 ssl default_server;
    #
    # หมายเหตุ: คุณควรปิดการใช้งาน gzip สำหรับการรับส่งข้อมูล SSL
    # ดู: https://bugs.debian.org/773332
    #
    # อ่านข้อมูลเพิ่มเติมเกี่ยวกับ ssl_ciphers เพื่อให้แน่ใจว่ามีการกำหนดค่าที่ปลอดภัย
    # ดู: https://bugs.debian.org/765782
    #
    # ใบรับรองที่ลงนามด้วยตนเองที่สร้างขึ้นโดยแพ็คเกจ ssl-cert
    # ห้ามใช้ในเซิร์ฟเวอร์ที่ใช้งานจริง!
    #
    # รวมตัวอย่าง/snakeoil.conf;

    รูท /var/www/html;

    # เพิ่ม index.php ในรายการหากคุณใช้ PHP
    ดัชนี index.html index.htm index.nginx-debian.html;

    ชื่อเซิร์ฟเวอร์ _;

    ที่ตั้ง / {
        # ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
        # เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
        try_files $uri $uri/ =404;
    }

    # ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
    #
    #location ~ \.php$ {
    # รวมตัวอย่าง/fastcgi-php.conf;
    #
    # # ด้วย php-fpm (หรือซ็อกเก็ตยูนิกซ์อื่น ๆ ):
    # fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
    # # ด้วย php-cgi (หรือซ็อกเก็ต tcp อื่น ๆ ):
    # fastcgi_pass 127.0.0.1:9000;
    #}

    # ปฏิเสธการเข้าถึงไฟล์ .htaccess ถ้ารูทเอกสารของ Apache
    # เห็นด้วยกับของ nginx
    #
    #location ~ /\.ht {
    #ปฏิเสธทั้งหมด
    #}
}

netstat -putan เอาต์พุต

(ไม่สามารถระบุกระบวนการทั้งหมดได้ ข้อมูลกระบวนการที่ไม่ได้เป็นเจ้าของ
 จะไม่แสดง คุณจะต้องรูทเพื่อดูทั้งหมด)
การเชื่อมต่ออินเทอร์เน็ตที่ใช้งาน (เซิร์ฟเวอร์และจัดตั้งขึ้น)
Proto Recv-Q Send-Q Local Address ที่อยู่ต่างประเทศ State PID/ชื่อโปรแกรม
tcp 0 0 127.0.0.53:53 0.0.0.0:* ฟัง -
tcp 0 0 0.0.0.0:22 0.0.0.0:* ฟัง -
tcp 0 0 0.0.0.0:111 0.0.0.0:* ฟัง -
tcp 0 0 0.0.0.0:80 0.0.0.0:* ฟัง -
tcp 0 36 10.0.0.61:22 176.115.102.236:47199 ก่อตั้ง -
tcp 0 0 10.0.0.61:37594 91.189.91.121:80 TIME_WAIT -
tcp6 0 0 :::22 :::* ฟัง -
tcp6 0 0 :::111 :::* ฟัง -
udp 0 0 127.0.0.53:53 0.0.0.0:* -
udp 0 0 10.0.0.61:68 0.0.0.0:* -
udp 0 0 0.0.0.0:111 0.0.0.0:* -
udp6 0 0 :::111 :::* -
Alex avatar
in flag
มี iptables/firewalld ทำงานอยู่หรือไม่
Artem Ilchenko avatar
mc flag
@Alex ดูเหมือนว่าไม่ `sudo ufw สถานะ verbose` -> `สถานะ: ไม่ได้ใช้งาน` `sudo iptables -nL | grep 80` -> `ยอมรับ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ctstate ใหม่ ก่อตั้งแล้ว ยอมรับ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:80 ctstate ESTABLISHED'
Alex avatar
in flag
netstat -putan พูดอะไร
Michael Hampton avatar
cz flag
โปรดโพสต์ผลลัพธ์ของ `nginx -T`
Artem Ilchenko avatar
mc flag
@Alex อัปเดตในคำถาม
Artem Ilchenko avatar
mc flag
@MichaelHampton อัปเดตในคำถาม
Alex avatar
in flag
ล้าง iptables ชั่วคราว เพื่อไม่ให้เกิดปัญหาและดูว่ามีปัญหาหรือไม่ มิฉะนั้น คุณอาจเสียเวลาไปมากสำหรับการกำหนดค่าไฟร์วอลล์ที่ผิดพลาดอย่างเห็นได้ชัด
Artem Ilchenko avatar
mc flag
@Alex ใช่ คุณพูดถูก มันช่วยได้ ขอบคุณมาก
Score:1
ธง in

เพิ่มสิ่งนี้เพื่อการรับรู้หากมีคน googles สิ่งนี้ อาจเป็นเพราะไฟร์วอลล์ทำงานอยู่ ล้าง iptables/firewalld/ufw และดูว่าปัญหายังคงอยู่หรือไม่

Artem Ilchenko avatar
mc flag
ดังนั้นหาก `tcpdump` แสดงพอร์ตทราฟฟิก ไฟร์วอลล์ยังคงสามารถกรองได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา