マシンはローカルホストではなくクライアントを提供せず、SSHは機能します。

マシンはローカルホストではなくクライアントを提供せず、SSHは機能します。

多少開放的な質問になると思いますが、この問題について数週間を費やしましたが、何の役にも立たなかったので、ここに質問する必要があるようです。私が試したことを追加し、範囲を絞り込むことができることを願っています。

私はデスクトップでArch Linuxを実行しており、ローカルネットワークにサービスを提供するためにWebサーバーを実行したいと思います。いくつかの一般的なWebサービスを試しましたが、何も機能しません。

SSHが動作します。ポート22で着信接続を許可するルールを追加し、sshdサービスを開始しましたが、正常に動作しました。デバッグのためにリモートホストへの接続を無効にするポート22を閉じたため、ファイアウォールは確実に機能しています。現在のファイアウォール構成は次のとおりです。

sudo iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3838
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:4999
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:2121
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate     RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
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 8 ctstate NEW
UDP        udp  --  0.0.0.0/0            0.0.0.0/0            ctstate NEW
TCP        tcp  --  0.0.0.0/0            0.0.0.0/0            tcp flags:0x17/0x02 ctstate NEW
REJECT     udp  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            reject-with tcp-reset
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-proto-unreachable

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain TCP (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3838
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:4999
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain UDP (1 references)
target     prot opt source               destination         

私のネットワークデバイスの設定は次のとおりです。

ip addr 

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether e0:d5:5e:23:ee:3f brd ff:ff:ff:ff:ff:ff
3: enp0s31f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether e0:d5:5e:23:ee:3d brd ff:ff:ff:ff:ff:ff
4: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 9c:b6:d0:1d:f7:97 brd ff:ff:ff:ff:ff:ff
inet 192.168.30.123/24 brd 192.168.30.255 scope global dynamic noprefixroute wlp2s0
   valid_lft 406681sec preferred_lft 406681sec
inet6 fe80::5dfe:2375:7e24:d383/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever

その後、この設定でnginxを起動しました(抜粋)(別のWebサーバーを試してみました。特別なことを試したい場合はコメントしてください)。

/etc/nginx/nginx.conf

server {
    listen       80;
    server_name  0.0.0.0;
    server_name  192.168.30.123;
    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

ss -tulnpこれを見せてください:

NetidState  Recv-Q Send-Q                       Local Address:Port  Peer     Address:Port                                
udp  UNCONN 0      0                    192.168.30.123%wlp2s0:68         0.0.0.0:*                                   
udp  UNCONN 0      0                           192.168.30.123:123        0.0.0.0:*                                   
udp  UNCONN 0      0                                127.0.0.1:123        0.0.0.0:*                                   
udp  UNCONN 0      0                                  0.0.0.0:123        0.0.0.0:*                                   
udp  UNCONN 0      0       [fe80::5dfe:2375:7e24:d383]%wlp2s0:123           [::]:*                                   
udp  UNCONN 0      0                                    [::1]:123           [::]:*                                   
udp  UNCONN 0      0                                     [::]:123           [::]:*                                   
tcp  LISTEN 0      128                                0.0.0.0:80         0.0.0.0:*                                   
tcp  LISTEN 0      128                                0.0.0.0:22         0.0.0.0:*                                   
tcp  LISTEN 0      5                                127.0.0.1:631        0.0.0.0:*                                   
tcp  LISTEN 0      128                              127.0.0.1:4999       0.0.0.0:*     users:(("R",pid=13147,fd=10)) 
tcp  LISTEN 0      128                                   [::]:22            [::]:*                                   
tcp  LISTEN 0      5                                    [::1]:631           [::]:*                                   
tcp  LISTEN 0      128                                      *:3838             *:*                                   

だから私はポートが開いていて何かがポートを聞いているようです。サンプルページはlocalhostに提供されますが、LANでは提供されません。同じ無線LANのラップトップに同様のサーバーが設定され、完全なLAN(問題のコンピュータを含む)を提供するため、これはネットワーク自体が大丈夫であることを意味すると仮定します。また、tcpdumpを使用してテストしました(つまり、tcpdumpは問題のコンピュータで実行されました)。

sudo tcpdump port 80

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:22:56.156589 IP 192.168.30.132.51764 > s-l.http: Flags [S], seq 1909655952, win 29200, options [mss 1460,sackOK,TS val 4135754645 ecr 0,nop,wscale 7], length 0
16:22:58.717288 IP 192.168.30.132.51766 > s-l.http: Flags [S], seq 16903 94439, win 29200, options [mss 1460,sackOK,TS val 4135757197 ecr 0,nop,wscale 7], length 0
16:23:00.183474 IP 192.168.30.132.51768 > s-l.http: Flags [S], seq 872524670, win 29200, options [mss 1460,sackOK,TS val 4135758723 ecr 0,nop,wscale 7], length 0
16:23:00.970190 IP 192.168.30.132.51770 > s-l.http: Flags [S], seq 3470413477, win 29200, options [mss 1460,sackOK,TS val 4135759430 ecr 0,nop,wscale 7], length 0

私のラップトップでは4回の更新が行われました。パッケージが届いたようですが、応答がないので本当に残念です。

編集:Shinyを試しましたが、runApp(".", host="0.0.0.0" , port=4999)まだlocalhostのみを提供します。しかし、まだnginxを説明していません。 (これは他のWebサーバー用です。)

答え1

Shinyの経験はありませんが、ネットワークインターフェイスの物理アドレスにバインドしてみましたか?と一緒にくださいifconfig -a

あなたはすでに次のことを試しました。

 runApp(".", host="0.0.0.0" , port=4999)

しかし、次のようにしてみてください。

runApp(".", host="<if_ip>” , port=3838)

また、ポート4999は上記の設定でそのポートを開かなかったため機能しませんiptables

関連情報