V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  uncat  ›  全部回复第 6 页 / 共 24 页
回复总数  467
1 ... 2  3  4  5  6  7  8  9  10  11 ... 24  
@echoo00 思路:

通过 PowerShell 实现一个函数来维护操作的逻辑。

1. 读取特定路径的 domain.txt 来管理规则
2. 实现 Add 操作的逻辑,NRPT 规则不存在则添加
3. 实现 Add 操作的逻辑,NRPT 规则存在则更新
4. 实现 Add 操作的逻辑,NRPT 规则多余则删除
5. 实现 Clean 操作的逻辑,清理本机所有 NRPT 规则,恢复初始状态。

代码如下:

```powershell

param (
[string]$Action = "Add", # 可以是 Add 或 Clean
[string]$FilePath = ".\domains.txt", # 包含域名的文件路径
[string]$NameServer = "192.168.188.2" # 默认的 DNS 服务器地址
)

function Manage-NrptRuleFromFile {
param (
[string]$Action,
[string]$FilePath,
[string]$NameServer
)

# 读取文件中的域名,添加前缀 '.'
$fileNamespaces = Get-Content $FilePath | ForEach-Object { "." + $_ }

switch ($Action) {
"Get" {
$rules = Get-DnsClientNrptRule
if ($rules) {
Write-Host "Current NRPT rules:"
$rules | Format-Table -Property Namespace, NameServers
} else {
Write-Host "No NRPT rules found"
}
}
"Add" {
# 获取当前所有的 NRPT 规则
$currentRules = Get-DnsClientNrptRule

# 添加或更新规则
foreach ($ns in $fileNamespaces) {
$rule = $currentRules | Where-Object { $_.Namespace -eq $ns }
if ($rule) {
if ($rule.NameServers -ne $NameServer) {
Set-DnsClientNrptRule -Name $rule.Name -NameServers $NameServer
Write-Host "Updated NRPT rule for $ns $NameServer"
}
} else {
Add-DnsClientNrptRule -Namespace $ns -NameServers $NameServer
Write-Host "Added NRPT rule for $ns"
}
}

# 清除不在文件中的规则
$currentRules | Where-Object { $fileNamespaces -notcontains $_.Namespace } | ForEach-Object {
Remove-DnsClientNrptRule -Name $_.Name
Write-Host "Removed NRPT rule for $($_.Namespace)"
}
}
"Clean" {
Get-DnsClientNrptRule | Remove-DnsClientNrptRule -Force
Write-Host "Cleaned all NRPT rules"
}
default {
Write-Host "Invalid action: $Action"
}
}
}

# 调用 Manage-NrptRuleFromFile 函数
Manage-NrptRuleFromFile -Action $Action -FilePath $FilePath -NameServer $NameServer

# 示例用法
# 将内容保存为 nrpt.ps1 文件,在 CWD 内添加一份 domains.txt ,每个域名一行,比如:
# example-01.com
# example-02.com
# example-03.com
#
# 指定 NameServer 地址
# .\nrpt.ps1 -NameServer "10.0.0.2"
#
# 指定文件地址
# .\nrpt.ps1 -FilePath ".\another-domains.txt"
#
# 清除所有规则
# .\nrpt.ps1 -Action Clean


```
在财务小姐姐的电脑上,PowerShell 管理员权限,执行添加一条 NRPT 规则的命令就行了(规则长期生效的)。

规则指定的域名(也就是你说的域名池)将会使用规则 IP 指定的 DNS 服务器来解析域名,否则采用默认的 DNS 服务器解析。(注意,截图中域名前的 . 不可省略)

参考这张截图中的命令: https://x.com/jinmiaoluo/status/1723948812224360585?s=20
如果只是自己的 Windows 设备需要 DNS 分流,通过 PowerShell 添加 NRPT 规则即可。如果是内部团队的需求,则可以考虑采用第二种方案。
然后在 DHCP 服务器上,将默认的 DNS 地址从网关,改为这台 Linux 的内网 IP 即可。
Windows 原生支持 DNS 分流,叫做 NRPT Rules 参考: https://x.com/jinmiaoluo/status/1723948812224360585?s=20

Linux 也是原生支持 DNS 分流的,你可以在内网,随便一台 Linux ,通过 systemd 内置的 systemd-resolved 配置好分流规则后,作为一台内网 DNS proxy 。啥都不用安装。
@ho121 哈哈哈,都可以,习惯就好。
开启本地的远程管理 -> 开启被控制端的远程管理功能
1. 开启本地的远程管理
2. 被控制的 Mac 通过 SSH 将本地 5900 绑定到远程服务器的 5900
3. 发起控制的 Mac 通过 SSH 将服务器的 5900 绑定到本地 5900
4. 本地通过自带的远程访问客户端,以 127.0.0.1:5900 的方式访问即可
@cherryas 那就两张 3090 呗 🤣
2023-11-19 19:34:54 +08:00
回复了 Nazz 创建的主题 Windows Windows10 已经成为了最好的 Linux 发行版
@Donaldo JB 的 remote 可用性不好,我很期待 JB 的 remote 能有 vscode 的 remote 级别的可用性,但至今依旧无法适应它。vscode 的 remote 方案倒是用了有 2 年了。
2023-11-19 12:39:30 +08:00
回复了 Nazz 创建的主题 Windows Windows10 已经成为了最好的 Linux 发行版
2023-11-19 12:38:42 +08:00
回复了 Nazz 创建的主题 Windows Windows10 已经成为了最好的 Linux 发行版
如果真的想原生 Goland ,可以试试 WSL 的 GUI ,将 Goland 直接作为一个 Linux GUI 跑在 WSL 内,就会有类似原生 Linux 的性能了。
2023-11-19 12:37:14 +08:00
回复了 Nazz 创建的主题 Windows Windows10 已经成为了最好的 Linux 发行版
2023-11-19 12:35:30 +08:00
回复了 Nazz 创建的主题 Windows Windows10 已经成为了最好的 Linux 发行版
IO 性能问题还是存在的,即使是在当前最新 WSL 2.0.4 ,这个最好得打引号。
2023-10-27 18:44:16 +08:00
回复了 pigcandance 创建的主题 Windows Windows 如何实现网络转发?
如果你想实现只对特定域名启用代理,可以下载 Proxifier ,原理是 Proxifier 捕获所有系统的流量,基于程序的名字( Chrome/QQ/Wechat/Edge )或者基于访问对象的地址(域名/IP )等规则,决定是直接访问还是发给本地的 socks5 监听。

你只要按需添加自己的规则即可。
2023-10-27 18:39:57 +08:00
回复了 pigcandance 创建的主题 Windows Windows 如何实现网络转发?
原生无污染版本

需要一台有公网 IP 的 Linux 服务器
内建了 SSH 服务端和客户端的 Windows 版本( 10 和 11 )

操作:

启用 B 内建的 SSH 服务端,允许其他设备通过 SSH 登录 B 。
在 B 上的 PowerShell 内通过 SSH 命令行客户端,将 B 的 22 端口绑定到 Linux 上。
在 A 上的 PowerShell 内通过 SSH 命令行客户端,将 Linux 作为 ProxyJump 来访问绑定在其 Linux localhost 的 B 的端口,基于 SSH Dynamic Forward 功能,在本地建立一个 socks5 的监听

打开 Windows 的系统设置,在网络 -> 代理一栏,配置系统代理为 socks5 监听的端口即可
2023-10-27 13:02:13 +08:00
回复了 dtekol 创建的主题 服务器 阿里云 e 系列服务器最低价购买(无 aff)
@ymy3232
5 年 574 元 VS 1 年 306 元?
2023-10-26 23:03:28 +08:00
回复了 charlieethan 创建的主题 小米 小米 14 / 骁龙 8Gen3 发布了
去店里看了,摄像头模块外面多了一圈,感觉没有 13 的那么好看,外观上退步了。
2023-10-22 17:37:14 +08:00
回复了 silvernoo 创建的主题 NAS 主板功耗 20 瓦+,真让人头疼
我平时是:200 Wh * 24 Hour * 30 Day / 1000 * 0.7 元 = 100 元,调整一下心态,享受工具和消费本身带来的效率提升就好。
2023-10-22 17:32:57 +08:00
回复了 silvernoo 创建的主题 NAS 主板功耗 20 瓦+,真让人头疼
看到这个问题,我的第一个疑问不是如何省下这 20W 的电,而是在思考:

20 Wh * 24 Hour * 30 Day / 1000 * 0.7 元 = 10 元

10 块钱值得我为之头疼吗?
1 ... 2  3  4  5  6  7  8  9  10  11 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2798 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 13:40 · PVG 21:40 · LAX 05:40 · JFK 08:40
Developed with CodeLauncher
♥ Do have faith in what you're doing.