干核桃仁怎么去皮 2025-07-04 15:06:34
濉溪县自然资源和规划局2025年工作安排 2025-11-03 15:45:49
「distance」除了「距離」以外的用法 2025-08-17 15:39:29
问号的基本用法,你真的掌握了吗?(一) 问号是用来表示疑问的标点符号,正确使用它可以让我们的句子更加清晰明了。今天我们来学习问号的基本用法,看看你是否都掌握了! 1️⃣ 直接疑问句: 问号用于直接疑问句的结尾,表示提问或寻求信息。 例如:你今天去哪里? 2️⃣ 选择疑问句: 问号用于选择疑问句的结尾,表示在两个或多个选项中选择。 例如:你喜欢咖啡还是茶? 3️⃣ 修辞疑问句: 问号用于修辞疑问句,通常不需要回答,用于强调或反问。 例如:你以为我不知道吗? ✨ 小提示:问号后面一般不再加其他标点符号。 ✨ 小练习:试着写几个使用问号的句子,看看它们如何改变你的表达效果。欢迎在评论区分享你的句子! 2025-06-30 02:56:00
亚马逊旅游攻略 2025-09-23 07:28:27
dnf怀表和贪食哪个好 2025-08-31 14:04:29
以色列科技发达核心因素 2025-10-23 02:24:43
您所访问的页面不存在 2025-05-18 05:36:53
xrv和逍客哪个值得买,本田xrv和逍客哪个更值得入手 2025-07-03 19:08:00
《悟空传》无特效完整版遭泄露 2025-10-25 10:03:26

windows防火墙配置以及网络服务开放排查

前言

windows中,防火墙向来不被重视,大多数人的建议都是关掉防火墙。此处仅探讨如何配置防火墙。

配置

ping/ICMPv4

判断你和他人是否完成组网,通常是使用ping命令,比如说

ping 192.168.10.52

然而,如果你没有关闭防火墙,通常是ping不通的,因为ICMP默认是被防火墙禁止入站的。

按Win搜索高级安全 Windows Defender 防火墙

入站规则-新建规则

自定义-所有程序--选择ICMPv4--作用域直接下一步

配置文件勾选域网络和专用网络,域网络一般在公司里组内网,专用网络一般就是我们的家庭网络,而公用网络则是商店网络或者校园网这种公有的,因此一般没有开放端口给这种网络的需求。

没有密码的WIFI也属于公用网络,以及上面提到的校园网、各种需要登录的网络(比如酒店中)。

假如不巧在这种环境下,某个应用请求开放网络访问,那么在专用网络和域网络中,这些应用就会被禁止外界访问,挺坑爹的。

名称自己取一个,比如Ping/ICMPv4。

配置完成后,就会发现可以ping通了。

修改配置

应用要开放服务时,一般会有窗口提示,我们一般也会直接确定,这个没什么好说的。

但是如果你点确定时处于公共网络,他只会在公共网络时提供访问,专用和域网络反而不能访问,非常反直觉,这就很曹丹。

入站规则中找到需要修改的配置项,比如nginx,双击,点击高级标签页,勾选域和公用。

建议配置

如果觉得烦,直接关掉三个防火墙,或者只开公用网络的。

该说不说,防火墙这个东西确实大多数情况下都是多此一举。

保守一些的话,像上面那样,开启ICMPv4的入站,然后在某个服务无法被访问时,考虑一下防火墙。

命令行

windows防火墙的命令行工具非常难用。

通过UI操作你需要很多步,首先,你很可能忘记了需要搜索高级安全这个前缀,而第一时间想到的肯定是防火墙三个字,这样你会首先打开设置中的防火墙。

而进去之后,先不说你会不会点开专用网络之类的配置,很可能被这个允许应用通过防火墙所诱导

于是乎你进入下面的页面

这个页面相当不友好,信息只有一个名称不说,双击点开也只是属性,而没有那么多配置。

就算你前面点开了高级设置,这个页面也不提供搜索功能,你需要自己找到需要修改的应用。

查询(不推荐)

建议还是使用UI界面去查询防火墙规则

$appKeyword = "*ollama*"

$appRules = Get-NetFirewallRule | Where-Object {

(Get-NetFirewallApplicationFilter -AssociatedNetFirewallRule $_).Program -like $appKeyword

}

$appRules | Format-Table -Property Name, DisplayName, Enabled, Direction, Action

以上这个命令是用来查询防火墙规则的,appKeyword则是应用名称。

这个命令要执行十来秒,实在是让人等不起。

你会看到类似这样的输出。

放行端口(推荐)

由于应用添加防火墙规则他是会自动弹出选项的,因此一般不需要命令行来操作。

添加防火墙规则,首先你需要以管理员身份启动命令行。

# 放行8080端口

New-NetFirewallRule -DisplayName "Allow TCP 8080" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow

如此一来,无论哪个应用开启了8080端口,外界都能访问到这个端口。

或者不开放公共网络访问,而开放域和专用网络访问。

New-NetFirewallRule -DisplayName "Allow TCP 8080 for Domain and Private" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow -Profile Domain,Private

放行应用(一般用不上)

修改下面DisplayName和-Program处的参数即可。

New-NetFirewallRule -DisplayName "Allow App for Domain and Private" -Direction Inbound -Program "C:\Path\To\YourApp.exe" -Protocol TCP -Action Allow -Profile Domain,Private

开放服务问题排查

回环地址

对外界开放服务,首先要保证自己的服务是正常的。

比如访问下面这个地址,使用localhost回环地址,回环地址只有自己能访问到,而且不需要任何网络环境。

localhost:11434

# ollama,状态码200表明没有问题

curl -I localhost:11434

如果正常,则说明服务没有问题。

网络地址

网络地址并非指的是我们平常上网的那个网络(外网),局域网(内网)也是网络。

在WIFI或者以太网详情中可以看到自己的网络IP地址(局域网IP)。

假如没有将地址暴露到网络中,则即使在本机上,访问本机的IP和端口也不会成功。

curl -I 192.168.10.51:11434

在powershell中,配置环境变量,ollama监听的地址

$env:OLLAMA_HOST='192.168.10.51'

# 启动ollama服务

ollama serve

这样就能在局域网中访问了。

然而,通常情况下,路由器使用了DHCP,这会导致我们的机器连接网络时很可能会发生IP的变化(比如路由器重启),就算不是,我们更换网络时IP也会变。

因此一个奇特而方便的地址,0.0.0.0出现了,(具体原因不必去了解,这个ip的定义肯定是为了方便使用的,就像回环地址那样)这个地址代表了本机能被访问到的任何ip。

本机访问:http://localhost:<端口> 或 http://127.0.0.1:<端口>。

局域网访问:http://<你的局域网IP>:<端口>。

公网访问:http://<你的公网IP>:<端口>

公网访问

这个的测试也很简单,直接在本机上测试公网ip或者域名就行了,如果能正常访问页面,一般情况下别的机器也能正常访问。

值得一说的是ipv6,ipv6一般的使用场景在公网。而与ipv4不同的是,ipv6并不是默认打开的,在某些网络中,ipv6是关闭的,比如公共网络之类的。

也就是说,你在ipv6公网开放的服务,很有可能有一大批用户无法访问,因为需要支持ipv6的网络才能访问ipv6服务。

评价

windows的防火墙设计不太优雅。当你重新连接WiFi时,你设置的专用网络又会变成公用网络,导致这种设置显得多此一举。

https://learn.microsoft.com/en-us/answers/questions/5536324/stop-windows-11-from-switching-my-private-network