Windows Media Services 2008外网访问问题

问:现在有一台WMS 2008想架设成外网的流媒体服务器,用内网IP测试成功,防火墙的554、1755端口及相应的规则均打开,端口映射设置了,匿名身份验证也配置了,现在就是无法通过mms://{外网IP}/{发布点}访问,另同IP上的IIS站点能在外网正常访问,用03的服务器设置也能在外面正常访问

答:方法很简单, 在host里面添加DNS解析:, 这里streaming.contoso.com应该替换为自己的域名.這樣用http://或mms://都可在外網播放了。当然路由器要作相应的兩個端口映射(http端口(默認80)和rtsp端口(554),用mms://時播放器實際上是轉成了RTSP端口了)。我已经试過了可行。

这篇文章解释了原因, 转载如下:


I've talked to a number of people that are having problems streaming from Windows Media Services 2008 on Windows Server 2008 when the server is behind a NAT firewall, some proxies, or load balancers. Clients on the internal network work just fine. In a network trace you'll see at WMS is returning a 503 Service Unavailable as the first response to the RTSP DESCRIBE or HTTP GET.

WMS is doing a DNS query for the domain name in the RTSP or HTTP request when the request is not the local NetBIOS, local DNS, or local IP. If a WMP client is requesting content through a NAT or similar device (such as some proxies and load balancers that hides or translate an external URL to an internal URL), the requested address might be something like  mms:// However internally the server name might be WMS01 or This generally is only going to happen if you're using Network Address Translation.

WMS 9.5 now contains a cache/proxy in the box. What's happening is when WMS doesn't recognize the requested URL as itself it is assuming that the request may be a proxy request. This happens even if the cache/proxy plug-in is disabled. Because internal clients would use the internal IP, NetBIOS, or DNS name, the server recognizes those request as intended for the local server itself.

You can work around this problem by adding any possible DNS name that could be requested by a client to the WMS server'sc:\windows\system32\drivers\etc\HOSTS file and point it tolocalhost. It would be something like:

We're investigating a way to fix this issue more permanently.