$ServerIP = "192.168.10.1"
$PoolDomains = @(
"viabtc.com", "viabtc.top", "viabtc.io",
"binance.com", "btc.com", "poolin.com",
"antpool.com", "f2pool.com", "emcd.io",
"foundryusa.com", "braiins.com", "slushpool.com"
)
foreach ($Domain in $PoolDomains) {
# Создаем первичную DNS-зону
Add-DnsServerPrimaryZone -Name $Domain -ZoneFile "$Domain.dns" -ErrorAction SilentlyContinue
# Добавляем запись для самого домена (@)
Add-DnsServerResourceRecordA -ZoneName $Domain -Name "@" -IPv4Address $ServerIP -ErrorAction SilentlyContinue
# Добавляем wildcard-запись (*.domain.com), чтобы перехватывать btc., lt., stratum., us. и любые другие поддомены
Add-DnsServerResourceRecordA -ZoneName $Domain -Name "*" -IPv4Address $ServerIP -ErrorAction SilentlyContinue
}
Write-Host "Все зоны пулов успешно созданы и направлены на $ServerIP!" -ForegroundColor Green
$ProxyIP = "192.168.40.211"
$PoolDomains = @(
"viabtc.com", "viabtc.top", "viabtc.io",
"binance.com", "btc.com", "poolin.com",
"antpool.com", "f2pool.com", "emcd.io",
"foundryusa.com", "braiins.com", "slushpool.com"
)
foreach ($Domain in $PoolDomains) {
# Удаляем старые записи A, если они были
Remove-DnsServerResourceRecord -ZoneName $Domain -RRType "A" -Force -ErrorAction SilentlyContinue
# Добавляем новые записи A с указанием IP вашего Stratum-прокси
Add-DnsServerResourceRecordA -ZoneName $Domain -Name "@" -IPv4Address $ProxyIP -ErrorAction SilentlyContinue
Add-DnsServerResourceRecordA -ZoneName $Domain -Name "*" -IPv4Address $ProxyIP -ErrorAction SilentlyContinue
}
# Очищаем кэш DNS на сервере
Clear-DnsServerCache -Force
Write-Host "Все DNS-запросы пулов теперь перенаправляются на $ProxyIP!" -ForegroundColor Green
# 1. Удаляем прошлые правила блокировки портов (если создавали)
Remove-NetFirewallRule -DisplayName "KILL-SWITCH: *" -ErrorAction SilentlyContinue
# 2. Блокируем ВСЕ внешние DNS-запросы (UDP/TCP 53) кроме обращения к самому Windows Server (192.168.10.1)
New-NetFirewallRule -DisplayName "KILL-SWITCH: Block External DNS" `
-Direction Outbound `
-LocalAddress "192.168.10.0/24" `
-Protocol UDP `
-RemotePort 53 `
-Action Block
# 3. Разрешаем трафик к Stratum-прокси (192.168.40.211)
New-NetFirewallRule -DisplayName "ALLOW: Mining Traffic to Proxy 192.168.40.211" `
-Direction Outbound `
-LocalAddress "192.168.10.0/24" `
-RemoteAddress "192.168.40.211" `
-Action Allow
# 4. Блокируем ПРЯМОЙ исходящий Stratum-трафик в интернет на любые другие адреса
$MiningPorts = @("3333", "3334", "1800", "25", "8888", "2500", "7777", "8080")
foreach ($Port in $MiningPorts) {
New-NetFirewallRule -DisplayName "KILL-SWITCH: Block Direct Mining Port $Port (Except Proxy)" `
-Direction Outbound `
-LocalAddress "192.168.10.0/24" `
-RemoteAddress "192.168.40.211" -PolicyStore ActiveStore -InvertTarget $true `
-Protocol TCP `
-RemotePort $Port `
-Action Block
}