私はポート8080でwikijsを実行しており、Apacheを使用してリバースプロキシを実行しています。 cloudflare argoトンネルを使用すると、特定の人だけがwikijsにログインできます。
したがって、ユーザーがhttp://publicip:80(Apacheで使用されているポート)を参照しようとすると、ポート8080にリダイレクトされ、cloudflareホームページがポップアップします。
ただし、ユーザーがhttp://publicip:8080(wikijsで使用されているポート)に直接アクセスしようとすると、引き続き接続されます。 ufwを試しましたが、ポート80は許可されておらず、動作します。ただし、ポート8080には該当しません。
答え1
ここで修正を見つけました。https://github.com/chaifeng/ufw-docker;現在、ufwはドッカーポートを公にブロックしません。 /etc/ufw/after.rules を変更する必要があります。
UFW設定ファイル/etc/ufw/after.rulesを変更し、ファイルの最後に次のルールを追加します。
# BEGIN UFW AND DOCKER
*filter
:ufw-user-forward - [0:0]
:ufw-docker-logging-deny - [0:0]
:DOCKER-USER - [0:0]
-A DOCKER-USER -j ufw-user-forward
-A DOCKER-USER -j RETURN -s 10.0.0.0/8
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
-A DOCKER-USER -j RETURN -s 192.168.0.0/16
-A DOCKER-USER -p udp -m udp --sport 53 --dport 1024:65535 -j RETURN
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 192.168.0.0/16
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 10.0.0.0/8
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 172.16.0.0/12
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 192.168.0.0/16
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 10.0.0.0/8
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 172.16.0.0/12
-A DOCKER-USER -j RETURN
-A ufw-docker-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW DOCKER BLOCK] "
-A ufw-docker-logging-deny -j DROP
COMMIT
# END UFW AND DOCKER