ポートが開く必要がある問題を解決するには?

ポートが開く必要がある問題を解決するには?

iptables を使用して Debian コンピュータでポートを正常に開いた。 ここに画像の説明を入力してください。

ポート12345で接続をリッスンするgoで書かれたWebサーバーを起動しました。今朝までうまくいきました。今、接続がタイムアウトで期限切れになり、根本原因を見つける方法がわかりません。以下はlsof出力です(今すぐ試してみるために12333に変更しました)。

ここに画像の説明を入力してください。

netstat -tlpanとuname:

ここに画像の説明を入力してください。

tcpv4の後にnetstatを受信するようにWebサーバーを構成します。 ここに画像の説明を入力してください。

コード入力:

ここに画像の説明を入力してください。

IPテーブル:

ここに画像の説明を入力してください。

答え1

通常、次のようなiptablesルールがあります。

# define standard chains and default behaviour (here ACCEPT, could be DROP)
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# everything as a continuation is OK, This will be the bulk => 1st rule
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# drop garbage packages
-A INPUT -m conntrack --ctstate INVALID -j DROP

# server services including your new web server
-A INPUT -p tcp -m tcp --dport 12345 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2103 -m conntrack --ctstate NEW -j ACCEPT

# (perhaps some more, do include SSH!)

# allow incoming ping (good for testing)
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT

# rest / default: DROP!
-A INPUT -j DROP

# Again, everything related is allowed
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# allow DNS, both UDP and TCP
-A OUTPUT -p tcp -m tcp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT

# allow access to time servers (NTP)
-A OUTPUT -p udp -m udp --dport 123 -m conntrack --ctstate NEW -j ACCEPT

# Allow anything else you need, e.g. for OS update servers
-A OUTPUT -p tcp -m conntrack --ctstate NEW -m tcp -m multiport --dports 80,443 -j ACCEPT

# Allow outgoing ping
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# disallow the rest!
-A OUTPUT -j DROP

# Forward usually not needed except for routing and NAT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

RELATED 状態がありません。

上記のルールは通常ファイルに書き込まれます。

# /etc/sysconfig/iptables

コマンドで保存できます。

# iptables-save > /etc/sysconfig/iptables

そのファイルから回復

# iptables-restore < /etc/sysconfig/iptables

iptables.service起動時にこのファイルからテーブルを復元できるシステムサービスがあります。システムによっては、このサービスがある場合と存在しない場合もあり、無効になる場合もあります(systemctl status iptables)。

サービスがある場合(yum install iptables-servicesCentOSに)、iptablesルールをテストして一度保存します。

# iptables-save > /etc/sysconfig/iptables

その後、サービスを有効にします。

# systemctl enable iptables
# systemctl start iptables

次の起動後、次のコマンドを実行して現在のエントリを確認し、これが機能していることをテストします(ここのすべてのコマンドと同じようにrootとして)。

# iptables -L -nv

関連情報