![如何向世界开放本地 Apache 网站?](https://linux22.com/image/867149/%E5%A6%82%E4%BD%95%E5%90%91%E4%B8%96%E7%95%8C%E5%BC%80%E6%94%BE%E6%9C%AC%E5%9C%B0%20Apache%20%E7%BD%91%E7%AB%99%EF%BC%9F.png)
我正在尝试启用 HTTP 端口,以便从我的网络外部进行访问。我目前有一个来自 ISP 的公共 IP。
我需要使用 iptables 进行设置吗?
sudo iptables -vL -n
Chain INPUT (policy ACCEPT 91728 packets, 101M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 64927 packets, 5892K bytes)
pkts bytes target prot opt in out source destination
sudo ip 地址列表
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
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: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether f0:de:f1:11:03:95 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether f0:7b:cb:9f:c6:f2 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.101/24 brd 192.168.0.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::f27b:cbff:fe9f:c6f2/64 scope link
valid_lft forever preferred_lft forever
sudo ss-nptl 源:80
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::80 :::* users:(("apache2",1267,4),("apache2",1266,4),("apache2",1265,4),("apache2",1264,4),("apache2",1263,4),("apache2",1249,4))
sudo ip 路由
default via 192.168.0.1 dev wlan0 proto static
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.101 metric 9
我还邀请你查看另一篇文章:-) https://askubuntu.com/questions/574726/problem-with-package-phpmyadmin-error-when-trying-to-create-table-in-phpmyadmi
答案1
您没有将公共 IP 绑定到运行 Web 服务器的机器的接口。它实际上是在您的路由器上配置的。由于它正在执行网络地址转换 (NAT),默认情况下,任何到此公共 IP 的新外部连接都不会到达您的内部机器。
为实现此目标,您需要做两件事:
- 允许传入 HTTP[S] 连接至运行 Web 服务器的计算机。
。
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
这将打开端口 80/tcp 和 443/tcp 以接收传入连接。从您的问题来看,您似乎根本没有运行防火墙 - 我建议您尽早检查一下。
- 您还需要将端口(如果您愿意,可以是 80 和 443)从路由器转发到运行 Web 服务器的机器(除了上面的 2 个 netfilter 规则)。
我不知道你有什么路由器,但这应该有帮助:
- 外部 IP:你的公网 IP
- 外部端口:80/tcp
- 内部 IP:192.168.0.101
- 内部端口:80/tcp
如果执行此操作后仍然遇到问题,请发布输出
sudo iptables -vL -n
sudo ss -nptl src :80
sudo ip addr list
sudo ip route