我在设置办公室电脑时遇到了一些困难。我试图阻止所有程序访问互联网,但有几个例外:
1) Web 浏览器应该只能访问几个网站。
2)TeamViewer应该可以正常工作。
我尝试设置出站规则的默认设置来阻止所有连接,然后我为 TeamViewer 和浏览器添加了“允许”规则,以便能够访问某些网站(使用自定义规则添加网站 IP)。
但是,“允许”规则似乎不起作用,让我根本无法访问互联网。这里似乎有什么问题?
编辑:我很想知道为什么以标准方式(添加出站规则 => 程序规则 => 选择程序路径)允许程序(例如 TeamViewer)无法让程序访问互联网,但添加自定义规则并解除对 TCP/UDP 端口的阻止却可以。应该没什么区别吧?
答案1
几点:
不要对 teamviewer 使用 TCP 80
TCP/UDP 端口 5938:TeamViewer 倾向于通过端口 5938 进行出站 TCP 和 UDP 连接 - 这是它使用的主要端口,TeamViewer 使用此端口时性能最佳。您的防火墙至少应允许这样做。
最好在一个中央防火墙上进行所有这些设置,而不是使用每个工作站的 Windows 防火墙。
我认为您可以使用一个允许规则配置 http 和 https 协议。但 Windows 防火墙规则会允许/拒绝 IP 地址而不是主机名。您可以使用 HOSTS 文件获得更好的结果。同样,Windows 防火墙不是完成此任务的最佳工具。请参阅此链接。
允许 teamviewer.exe 通过防火墙是不够的,最低限度这是:
New-NetFirewallRule -DisplayName "!Allow Outbound 5938 UDP TeamViewer.exe Local Port" -Enabled True -Direction Outbound -Profile ANY -LocalPort 5938 -RemotePort ANY -Protocol UDP -Program "C:\Program Files (x86)\TeamViewer\TeamViewer.exe" -Action Allow -Description "Allows Outbound TeamViewer.exe communication via 5938 UDP."
New-NetFirewallRule -DisplayName "!Allow Outbound UDP svchost.exe" -Enabled True -Direction Outbound -Profile ANY -Protocol UDP -Program "C:\WINDOWS\system32\svchost.exe" -Action Allow -Description "Allows Outbound UDP svchost.exe."
New-NetFirewallRule -DisplayName "!Allow Outbound TCP TeamViewer.exe" -Enabled True -Direction Outbound -Profile ANY -Protocol TCP -Program "C:\Program Files (x86)\TeamViewer\TeamViewer.exe" -Action Allow -Description "Allows Outbound TCP TeamViewer.exe."
Teamviewer.exe 不是唯一通过网络进行通信的进程。可能还有其他进程(例如TeamViewer_Service.exe
或svchost.exe
)需要建立出站 TCP 连接。请参阅TCP查看器了解更多信息。
如果 5938 被任何其他防火墙阻止,您仍然可以使用 443 来访问 TeamViewer。