我有一个主路由器,还有一个 TP-Link TL-MR3040,所以我将它用作主路由器的扩展器。
当我将扩展器用作 Wi-Fi 时,我的网络或一切都很好。但是当我想将镜像或从 PC 投射到我的手机时,我遇到了问题,因为扩展器上的网络相同,我遇到了问题。
他们说我没有相同的 IP,所以我的 PC 和手机在同一个网络上,但 IP 不同,无法连接。我该如何解决这个问题?
我想要从位于家用路由器后面的家用计算机 (192.168.0.2) 连接到 google.com(ping 返回 216.58.204.78)。192.168.0.2 打开本地 TCP 端口(例如 60000),然后通过我的路由器 NAT 向 216.58.204.78:80 发送一条消息,该端口被转换为 :60010。我知道对 192.168.0.2:60000 的回复实际上将发送到 :60010,我的路由器将使用 NAT 表将回复转发到 192.168.0.2。
我的问题是当该消息到达 Google 端时会发生什么。Google 路由器是否只使用端口 80 将消息发送到 Google 服务器,如果是,Google 服务器回复时会发生什么?服务器是否在其他端口上回复,然后在发送过程中进行转换,因此我的机器的进一步回复不再是端口 80,而是“面向公众”的端口?我有点不明白 Google 端在 NATing 方面发生了什么。
我的 Linux 发行版是 Debian 12.8.0,64 位,英文版。
我已经安装了软件包ifupdown
,iproute2
并且macchanger
在寻求帮助之前,我查阅了以下帖子:
ip link set 未分配 IP 地址,但 ifup 分配了
注意:使用该软件包启动和关闭网络接口没有任何问题,ifupdown
并且能够访问互联网。
的内容/etc/network/interfaces
是
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
#auto lo
#iface lo inet loopback
# The primary network interface
#allow-hotplug enxfe5953ed38a0
#iface enxfe5953ed38a0 inet static
# address 192.168.1.50/24
# gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 9.9.9.9 149.112.112.112
的内容/etc/network/script/home-lan
是
# The primary network interface
allow-hotplug enxfe5953ed38a0
iface enxfe5953ed38a0 inet static
address 192.168.1.50/24
netmask 255.255.255.0
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 1.1.1.1 8.8.8.8
我创建了一个名为的 bash 脚本lan-new-up
,使其可执行,并将其放置在/usr/local/bin
其内容如下:
#!/bin/bash
sudo macchanger -r enxfe5953ed38a0
sudo cp /etc/network/script/home-lan /etc/network/interfaces.d
#sudo ifup enxfe5953ed38a0
sudo ip link set dev enxfe5953ed38a0 up
sudo ip address add 192.168.1.50/24 dev enxfe5953ed38a0
sudo ip route add default via 192.168.1.1 dev enxfe5953ed38a0
执行脚本后lan-new-up
,出现如下所示的错误:
username@hostname:~$ lan-new-up
[sudo] password for username:
Current MAC: 02:b3:c2:9f:0a:90 (unknown)
Permanent MAC: 02:b3:c2:9f:0a:90 (unknown)
New MAC: fe:59:53:ed:38:a0 (unknown)
username@hostname:~$ ping yahoo.com
ping: yahoo.com: Temporary failure in name resolution
感谢您的帮助。
一段时间以来,每天都会有多次来自不同 IP 的大量访问我的服务器,每次持续 2 到 4 分钟,每秒访问量在 3 到 10 次之间。
所有这些访问都来自 ASN:AS8075 MICROSOFT-CORP-MSN-AS-BLOCK
有人知道这是什么吗?
我该联系谁来了解这些访问来自哪里?
我们有一个带有 WHM 的服务器主机。
该主机是一个拥有大量网站的虚拟主机。
我们最近发现 Google Analytics 和 Search Console 似乎无法访问网站页面,因为 Google 似乎无法访问 robots.txt 文件。
robots.txt 文件存在,并且可以通过浏览器访问。
我的结论是,WHM 防火墙或类似程序以某种方式阻止了 Google 访问www.website.com/robots.txt。但我不明白这是怎么发生的。Google 没有提供任何有用的具体信息。只是请求遇到了 (5xx) 错误。但请求在浏览器中加载正常。
我已清除防火墙 (CSF) 上大量被阻止的 IP 列表,并检查端口泛洪防火墙选项是否已关闭(它们已关闭)。我还检查了 Apache,看是否有任何内容可能导致虚拟主机 httpd.conf 包含的问题,但似乎没有任何相关内容。
我不确定我在寻找什么,但某些东西导致 Google(具体且唯一)被服务器拒绝。
我遗漏了什么?我可以在哪里查看?我没主意了。我认为有某种自动程序阻止 Google 机器人访问服务器,但我搞不清楚它是什么。也许是某种规则拒绝访问非 HTML 文件,尽管它们在浏览器中可以工作。
我正在使用 Ubuntu,发现我的全局 IP 地址是192.168.1.xxx
我在这里写的xxx
。
为了检查这一点,我设置了一个 Web 服务器,并且只能通过该本地 IP 地址访问它。当我检查我的 IP 网页时,它显示一个看起来正常的 IP 地址:180.150.80.xxx
并且无法从这个看起来正常的 IP 地址访问该网页。我用手机检查了这一点。
的输出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: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 98:e7:f4:0f:3d:01 brd ff:ff:ff:ff:ff:ff
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether b8:81:98:cc:2d:bf brd ff:ff:ff:ff:ff:ff
altname wlp3s0
inet 192.168.1.xx/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
valid_lft 84833sec preferred_lft 84833sec
inet6 2403:580e:7b3c:0:b69:4100:a7f4:xxxx/64 scope global temporary dynamic
valid_lft 6707sec preferred_lft 3105sec
inet6 2403:580e:7b3c:0:1f61:fea0:6275:xxxx/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 6707sec preferred_lft 3105sec
inet6 fe80::a117:ea44:a262:xxxx/64 scope link noprefixroute
valid_lft forever preferred_lft forever
IP 路由的输出为:
default via 192.168.1.1 dev wlo1 proto dhcp metric 600
169.254.0.0/16 dev wlo1 scope link metric 1000
192.168.1.0/24 dev wlo1 proto kernel scope link src 192.168.1.xx metric 600
这里发生了什么?
我通过下面的 GUI 添加显示 IPv4 地址的屏幕截图:
为什么我看到的 IP 地址为192.168.1.xxx
?
我遇到了一些相当奇怪的行为,其中看似无关的默认网关路由产生了意想不到的副作用。我设法用一个最小的例子来复制这个问题。这里的目的主要是教育性的,我在尝试更复杂的场景时偶然发现了这一点。简而言之,当我认为不应该连接到192.168.0.3上的 Web 服务器时,我却设法连接到了。
我的笔记本电脑使用 WiFi( 192.168.0.0/24网络)连接到我的家庭网络。路由表如下:
kevin@kevin-UX305LA:~$ ip route
default via 192.168.0.1 dev wlp2s0 proto dhcp metric 600
169.254.0.0/16 dev wlp2s0 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.0.0/24 dev wlp2s0 proto kernel scope link src 192.168.0.210 metric 600
和目前curl 192.168.0.3
都curl --interface wlp2s0 192.168.0.3
在工作并给出以下响应:
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.25.2</center>
</body>
</html>
现在,我继续删除与192.168.0.0/24网络相关的所有路由,以便其余路由为:
kevin@kevin-UX305LA:~$ sudo ip route del default via 192.168.0.1
kevin@kevin-UX305LA:~$ sudo ip route del 192.168.0.0/24
kevin@kevin-UX305LA:~$ ip route
169.254.0.0/16 dev wlp2s0 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
此外,ip route get
有和没有绑定到接口的情况如下所示:
kevin@kevin-UX305LA:~$ ip route get 192.168.0.3
RTNETLINK answers: Network is unreachable
kevin@kevin-UX305LA:~$ ip route get oif wlp2s0 192.168.0.3
192.168.0.3 dev wlp2s0 src 192.168.0.210 uid 1000
cache
运行curl 192.168.0.3
会给出结果curl: (7) Couldn't connect to server
,运行curl --interface wlp2s0 192.168.0.3
不会给出任何结果(curl 被阻止)。以下是 strace 显示的片段:
setsockopt(5, SOL_SOCKET, SO_BINDTODEVICE, "wlp2s0\0", 7) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("192.168.0.3")}, 16) = -1 EINPROGRESS (Operation now in progress)
这很好,符合我的预期,即笔记本电脑应该无法到达192.168.0.3。
现在这是奇怪的部分。如果我添加一个虚拟默认网关(例如通过随机地址的docker0接口),则我的路由表如下:
kevin@kevin-UX305LA:~$ sudo ip route add default via 172.17.0.2
kevin@kevin-UX305LA:~$ ip route
default via 172.17.0.2 dev docker0 linkdown
169.254.0.0/16 dev wlp2s0 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
运行curl 192.168.0.3
失败,但运行curl --interface wlp2s0 192.168.0.3
成功并显示先前的 HTML 回复。
kevin@kevin-UX305LA:~$ curl 192.168.0.3
curl: (7) Failed to connect to 192.168.0.3 port 80 after 3068 ms: No route to host
kevin@kevin-UX305LA:~$ ip route get 192.168.0.3
192.168.0.3 via 172.17.0.2 dev docker0 src 172.17.0.1 uid 1000
cache
kevin@kevin-UX305LA:~$ curl --interface wlp2s0 192.168.0.3
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.25.2</center>
</body>
</html>
kevin@kevin-UX305LA:~$ ip route get oif wlp2s0 192.168.0.3
192.168.0.3 dev wlp2s0 src 192.168.0.210 uid 1000
cache
我研究了一下SO_BINDTODEVICE
,发现它仍然应该遵守路由表。为什么通过随机地址通过不同接口添加默认网关会curl --interface wlp2s0 192.168.0.3
成功?
以下命令列出与接口关联的地址。我检查过,执行上面的每个命令后,该命令的结果总是相同的。
kevin@kevin-UX305LA:~$ ip -br addr
lo UNKNOWN 127.0.0.1/8 ::1/128
wlp2s0 UP 192.168.0.210/24 fe80::7a03:3420:b8b0:4db7/64
docker0 DOWN 172.17.0.1/16
总之,192.168.0.210是这台笔记本电脑,192.168.0.3是网络上托管 Web 服务器的另一台计算机,192.168.0.1是默认网关(我的路由器)。
我正在运行 Linux Mint。这是一些信息。
kevin@kevin-UX305LA:~$ uname -a
Linux kevin-UX305LA 5.15.0-84-generic #93-Ubuntu SMP Tue Sep 5 17:16:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
kevin@kevin-UX305LA:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 21.2
Release: 21.2
Codename: victoria
假设我们有一个以下形式的子网 IP 地址:“192.168.1.0/22”。0 到 22 之间的“/”是什么意思?我从未见过这种格式的 IP 地址。是吗?是否意味着 IP 地址的最后一个整数可以在 0 到 22 之间?
注意:我指的不是使用子网划分时丢失的 2 个 IP 地址。
我认为我的数学某处是错误的。这就是我正在做的。
为了减少广播域,我应用了子网掩码255.255.254.0/23
这给了我以下子网等
172.16.2.0
=>172.16.2.1
至172.16x.3x.255
(512 台主机)现在,这就是我的困惑所在:我想将该子网进一步划分为更小的子网,因此我通过从主机部分借用一些位来使用子网掩码255.255.255.192/26
。
根据Calculator.net上的这个 IP 地址子网计算器,我将得到 4 个子网
172.16.2.0
=>172.16.2.1
到172.16.2.62
172.16.2.64
=>172.16.2.65
到172.16.2.126
172.16.2.128
=>172.16.2.129
到172.16.2.190
172.16.2.192
=>172.16.2.193
到172.16.2.254
问题:172.16.3.x 范围内的 IP 地址会怎样?为什么它不显示在子网中?
我已经购买了一个域名并更新了 DNS 记录以指向我的 WAN IP 地址。我现在正尝试通过输入我的 WAN IP(和域名)来访问该网站——然而,这会将我带到路由器的网页。
我能够在不被重定向的情况下访问该网站的唯一方法是打开 VPN,这似乎是一个不必要的解决方法。我也无法在我的路由器主页中找到任何设置来关闭此功能。(我有一个 Linksys MR2000 Hydra 6)
谁能阐明为什么会发生这种情况?我以前从来没有见过这个功能,因为我一直使用网关IP访问路由器。