判断公网ip

使用 tracert 命令

tracert 是一个网络诊断工具,用于跟踪数据包从你的计算机到目标服务器或主机的路径。它的作用是显示数据包经过的路由器(或者跳数)以及每个路由器的响应时间。这对于分析网络连接的问题非常有用,例如找出数据包在网络中的延迟或确定数据包在哪个节点出现问题。

首先打开ip138网站查看自己的ip,这里会显示自己的ip,我的是
39.46.14.130

打开cmd终端输入:

1
tracert 39.46.14.130

等待一段时间观察输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
C:\Users\86136>tracert 39.46.14.130

通过最多 30 个跃点跟踪到 39.46.14.130 的路由

1 <1 毫秒 <1 毫秒 <1 毫秒 39.46.14.130

跟踪完成。

C:\Users\86136>tracert 39.46.14.130

通过最多 30 个跃点跟踪到 39.46.14.130 的路由

1 <1 毫秒 <1 毫秒 <1 毫秒 39.46.14.130

跟踪完成。

C:\Users\86136>

在非桥接情况下,如果只有两跳那就说明是有公网IP地址的,如果超过两跳那就肯定是内网IP地址了。

在桥接情况下,如果只有一跳那就说明是有公网IP地址的,如果超过一跳那就肯定是内网IP地址了。

桥接光猫

桥接光猫可以防止双重NAT导致需要配置多次端口映射,并把路由转发的负载转移到性能相对强劲的路由器上。提高网络体验。

这里以山东联通型号为HG6142A的光猫为例。

  • 获得mac地址可以通过登录后台192.168.1.1获取也可以输入:
    1
       arp -a 192.168.1.1
  • 允许telnet,并获取超级管理员密码(这里的超级管理员密码不是一般用户的密码,一般是维修人员使用的)

浏览器输入http://192.168.1.1/telnet?enable=1&key=<刚刚获取的mac地址>,显示成功信息说明成功

首先,确保你的电脑已开启Telnet服务(请自行baidu开启方法),然后输入telnet 192.168.1.1进入telnet

账号root(不对就试试admin),密码是Fh@mac后六位(注意大小 写),输入密码是不显示的,输完直接回车(显示/var #就是登录成功)

然后输入命令load_cli factory,进入工厂模式

最后输入显示管理员密码命令show admin_pwd,显示管理员密码

admin_pwd=后面的就是超级密码

登录光猫->状态->基本配置->宽带设置,修改前注意截图,防止改坏

image-20240731122553475

保存后登录路由器进行拨号:

image-20240731141547634

此时你的光猫后台应该无法登录,而路由器可以登录。

配置web服务

在本地随便起一个服务,你可以是NAT什么的,主要是获取端口,我使用vue。

注意配置ip为0.0.0.0,当服务的 IP 地址设置为 0.0.0.0 时,服务会在所有可用的网络接口上监听来自任何 IP 地址的连接请求。这意味着该服务将接受来自本地网络中任何计算机的连接,而不仅仅是某个特定 IP 地址上的请求。

我把服务监听到8888端口。访问以下局域网地址都可以正常访问:

1
2
3
4
5
6
7
8
[0]   VITE v5.3.4  ready in 585 ms
[0]
[0] ➜ Local: http://localhost:8888/
[0] ➜ Network: http://192.168.137.1:8888/
[0] ➜ Network: http://10.144.195.37:8888/
[0] ➜ Network: http://192.168.229.1:8888/
[0] ➜ Network: http://192.168.230.1:8888/
[0] ➜ Network: http://192.168.0.109:8888/

端口映射,实现外网访问

在自己的路由器中找到端口映射,虚拟服务器这种字样,进行配置:
image-20240731124132553

我把外网访问端口设置为8889,内网ip地址填自己的计算机的ip地址,如果有dhcp的话,可以mac绑定ip,避免ip频繁变更。

此时访问http://39.46.14.130:8889可以正常访问,访问http://39.46.14.130:8888则不行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
C:\Users\86136>curl http://39.46.14.130:8889
<!DOCTYPE html>
<html lang="en">
<head>
<script type="module" src="/@vite/client"></script>

<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>