技巧 Steam禁止联网 Zgfnye 2024-09-08 2026-04-24 1.禁止应用联网: 1.1.打开“控制面板”。
1.2.将右上角“查看方式”改为“大图标”。
1.3.打开“Windows defender防火墙”。
1.4.点击左边栏的“高级设置”。
1.5.点击左边“出站规则”,再点击右上角“新建规则”。
1.6.选择“程序”并点击“下一步”。
1.7.点击“浏览”找到想要禁止联网的软件快捷方式打开。
1.8.勾选“阻止连接”并点击“下一步”。
1.9.其余设置全都保持默认,最后随便设置一个名称并点击“完成”就能禁止该应用联网了。
2.恢复应用联网功能: 只需要在高级设置界面禁用出站规则即可。
3.steam网络阻断器(BAT脚本): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 @echo off title Steam 网络工具 - by zgfnye color 0E setlocal enabledelayedexpansion :: 配置文件路径(放在用户文件夹) set "ConfigFile=%USERPROFILE%\.steam_tool_config.txt" :: 读取保存的路径(如果存在) if exist "%ConfigFile%" ( set /p SteamPath=<"%ConfigFile%" ) else ( :: 默认路径 set "SteamPath=C:\Program Files (x86)\Steam" ) :menu cls echo ======================================== echo Steam 网络阻断器 - by zgfnye echo ======================================== echo. echo 1. 断开网络 (Disconnect) echo. echo 2. 恢复网络 (Connect) echo. echo 3. 查看规则 (Check status) echo. echo 4. 设置路径 (Change Steam path) echo. echo 5. 退出 (Exit) echo. echo ======================================== echo 用途: 阻断Steam网络,方便使用家庭库共享 echo. echo 当前路径: %SteamPath% echo ======================================== echo. set /p choice=请输入选项 (1-5): if "%choice%"=="1" goto block if "%choice%"=="2" goto unblock if "%choice%"=="3" goto view if "%choice%"=="4" goto setpath if "%choice%"=="5" exit goto menu :setpath cls echo 当前路径: %SteamPath% echo. set /p SteamPath=请输入新的Steam安装路径: :: 去掉路径末尾可能存在的反斜杠 if "!SteamPath:~-1!"=="\" set "SteamPath=!SteamPath:~0,-1!" :: 保存到配置文件 echo %SteamPath% > "%ConfigFile%" echo. echo 路径已更新为: %SteamPath% pause goto menu :view cls echo ======================================== echo 查看防火墙规则 echo ======================================== echo. echo [Steam 相关规则] echo ------------------------ netsh advfirewall firewall show rule name=all | findstr /i "Steam" 2>nul if errorlevel 1 echo 没有找到Steam相关规则 echo. echo ------------------------ echo [Block_Steam 阻断规则] netsh advfirewall firewall show rule name=all | findstr /i "Block_Steam" 2>nul if errorlevel 1 echo 没有找到Block_Steam规则 echo. echo ======================================== echo 状态说明: 有 Block_Steam 规则 = 已断网 echo 无 Block_Steam 规则 = 已联网 echo ======================================== echo. pause goto menu :block cls echo ======================================== echo 断开网络 (断网模式) echo ======================================== echo. :: 检查管理员权限 net session >nul 2>&1 if %errorlevel% neq 0 ( echo 错误: 需要管理员权限! echo 请右键选择"以管理员身份运行" pause goto menu ) :: 关键修复:确保路径是短文件名格式 for %%A in ("%SteamPath%") do set "SteamPathShort=%%~sA" set "exe=%SteamPathShort%\Steam.exe" echo 调试: 短路径 = %SteamPathShort% echo 调试: exe = %exe% echo. :: 检查文件是否存在 if not exist "%exe%" ( echo 错误: 找不到 Steam.exe echo 路径: %exe% echo. pause goto menu ) echo 正在添加防火墙规则... :: 添加规则 netsh advfirewall firewall show rule name="Block_Steam" >nul 2>&1 if errorlevel 1 ( netsh advfirewall firewall add rule name="Block_Steam" program="%exe%" dir=out action=block echo [成功] 出站规则已添加 ) else ( echo [跳过] 出站规则已存在 ) netsh advfirewall firewall show rule name="Block_Steam_In" >nul 2>&1 if errorlevel 1 ( netsh advfirewall firewall add rule name="Block_Steam_In" program="%exe%" dir=in action=block echo [成功] 入站规则已添加 ) else ( echo [跳过] 入站规则已存在 ) echo. echo 完成!Steam 现已断网 echo. pause goto menu :unblock cls echo ======================================== echo 恢复网络 (联网模式) echo ======================================== echo. :: 检查管理员权限 net session >nul 2>&1 if %errorlevel% neq 0 ( echo 错误: 需要管理员权限! echo 请右键选择"以管理员身份运行" pause goto menu ) echo 正在删除防火墙规则... :: 删除规则 netsh advfirewall firewall delete rule name="Block_Steam" >nul 2>&1 if errorlevel 1 ( echo [信息] 出站规则不存在 ) else ( echo [成功] 出站规则已删除 ) netsh advfirewall firewall delete rule name="Block_Steam_In" >nul 2>&1 if errorlevel 1 ( echo [信息] 入站规则不存在 ) else ( echo [成功] 入站规则已删除 ) echo. echo 完成!Steam 现已联网 echo. pause goto menu