ISA2006最常用的三大功能是访问控制,服务器发布和VPN。访问控制我们在之前的博文中已经谈了不少,今天我们来讨论一下服务器发布。ISA把服务器发布分为Web服务器发布和非Web服务器发布,Web服务器发布又可以细分为安全Web站点发布和Web站点发布,今天我们讨论的是Web站点发布,也就是不使用证书的Web服务器发布。本文将介绍发布Web站点常用的一些技巧以及注意事项,希望能对大家有所帮助。
服务器发布简单地说就是把内网或DMZ的服务器发布到ISA的外网网卡上,让外网用户通过ISA的外网IP就能访问到被发布的服务器。但为什么需要用发布规则呢?为什么不能用访问内规则呢?创建一条访问规则允许外网访问内网被发布的服务器岂不是很简单,而且有些朋友还真就这么做过。俺来解释一下这个问题,什么时候该用访问规则,什么时候该用发布规则取决于源网络和目标网络的网络规则(请参考[url]http://yuelei.blog.51cto.com/202879/84995[/url])。如果源网络和目标网络间的网络规则允许访问,那我们就应该使用访问规则;如果源网络和目标网络间的网络规则不允许访问,那我们就应该使用发布规则。举个例子,内网到外网的网络关系是NAT,网络规则允许从内网到外网单向访问。如果内网访问外网的服务器,我们应该用访问规则;但如果外网要访问内网的服务器,就只能通过发布规则了。
访问规则和发布规则还有一个地方有区别,访问规则使用的协议,方向都是出站;而发布规则使用的协议,方向都是入站。
介绍了一些发布规则的理论,接下来就通过几个实验来介绍如何发布Web服务器。实验拓扑如下图所示,Denver和Perth是内网的Web服务器,Istanbul是外网的测试计算机,Denver同时也是内网的DNS服务器,我们在内网部署了域环境,实际上域并非实验必须,在工作组环境下也是完全可以的。
一 发布单个Web站点
先处理一种最简单的发布场景,我们把内网的一个Web站点发布出来即可。我们要发布的目标是Denver上的默认Web站点,Denver的域名为Denver.contoso.com,现在我们来看看应该如何操作。
在ISA服务器上以此点击 开始-程序-Microsoft ISA Server-ISA服务器管理,右键点击防火墙策略,如下图所示,选择新建“网站发布规则”。
为新建的发布规则取名为“发布内网的Denver.contsoo.com”。
当访问请求符合规则要求时,ISA允许访问请求。
选择“发布单个网站或负载平衡器”。
由于此次发布没有使用证书,因此我们选择使用不安全的连接发布Web站点。
内部被发布的站点是Denver.contoso.com,如果担心ISA解析Denver.contoso.com有问题,可以输入Denver的IP地址10.1.1.5。
我们选择发布路径为 /*,/*代表根目录,意思是要把Denver网站的所有内容都发布出来。
接下来要设置被发布站点的公共名称,也就是外网访问被发布站点时应采用哪种形式。如下图所示,如果我们在接受请求中选择“任何域名”,那意味着外网的访问者可以不限定访问域名,只要访问者使用的域名能解析为ISA的外网IP就可以,甚至可以直接用IP访问。
接下来我们要使用侦听器来监听ISA的80端口,安装ISA时要求不能有进程监听80端口,就是为了避免和ISA的Web侦听器冲突。由于当前没有可用的侦听器,我们点击“新建”,准备创建一个侦听器。
出现新建侦听器向导,我们为侦听器取名为“Listen 80”。
此次发布没有使用证书,不需要于客户端建立SSL安全连接。
让侦听器监听外部网络,也就是说侦听器将监听192.168.1.254的80端口。
侦听器不需要对用户进行身份验证,我们选择“没有身份验证”。
这次发布不需要单一登录设置。
点击完成结束创建侦听器。
回到创建发布规则向导,选择使用刚刚创建的侦听器“Listen 80”。
不要求客户端进行身份验证。
此发布规则适用于所有用户。
点击完成结束发布向导的创建。
等发布规则生效后,我们在外网客户机Istanbul上测试一下发布效果。首先我们用IP直接访问,如下图所示,我们在浏览器中输入192.168.1.254,结果如下图所示,发布成功!
再用域名访问,为简单起见,我们在外网没有部署DNS,域名解析用hosts文件完成,hosts文件在\windows\system32\drivers\etc目录下,内容如下图所示。在真正的生产环境下,自然会有公网的DNS服务器帮助解析。
有了Hosts文件帮助解析,在Istanbul上用IE访问denver.contoso.com,结果如下图所示,也成功了!
由此可见,如果用ISA发布单个站点,还是一件相当容易的事情。
二 发布多个Web站点
现在我们要加点难度了,这次的发布任务是发布多个站点,内网的Denver和Perth上都有Web站点需要发布。我们该如何处理呢?解决思路有两个,一是创建两个侦听器,分别监听ISA外网IP的不同端口。然后创建两个发布规则,一个发布Denver,另一个发布Perth,两个发布规则中分别调用两个侦听器;二是只用一个侦听器,创建两个发布规则分别发布Denver和Perth,两个发布规则依靠ISA的Web过滤能力进行区分。
考虑到如果创建两个侦听器,那外网用户访问其中一个网站时肯定要用到非标准的80端口,这并非一个好的选择,因此我们倾向于采用第二种方法。那现在我们就面临一个问题,当外网用户访问ISA外网IP的80端口时,我们怎么能区分出访问者是要访问Denver还是Perth呢?我们可以利用发布网站的公共名称来加以区分,例如我们可以规定Denver网站的公共名称是Denver.contoso.com,Perth网站的公共名称是Perth.contoso.com,这样根据外网用户访问域名的不同,我们就可以区分出外网用户访问的目标网站到底是谁。
我们看看具体该如何去做,首先我们要为Perth网站创建一条发布规则,考虑到这条发布规则和发布Denver的规则有类似之处,我们就使用简单些的办法,将Denver的发布规则复制过来,然后稍加修改即可。如下图所示,在右键单击Denver的发布规则,选择“复制”。
在Denver的发布规则上中单击右键,选择“粘贴”,即可复制Denver的发布规则,如下图所示,就是复制发布规则后的场景。
接下来我们要修改复制的发布规则,让它能够用于发布Perth站点。编辑“发布内网的Denver.contoso.com(1)”,如下图所示,切换到常规标签,将发布规则名称改为“发布内网的Perth.contoso.com”。
切换至发布规则的“到”标签,将发布的站点改为“perth.contoso.com”。
切换到发布规则的“公共名称”标签处,选择此规则应用到“以下网站的请求”,如下图所示,点击“添加”按钮,在公共名称对话框中输入perth.contoso.com。这样以后访问者必须用域名perth.contoso.com访问,才能和这条发布规则匹配。
这样Perth的发布规则就修改完成了,接下来对Denver的发布规则也要进行修改,我们对Denver的发布规则只修改公共名称一项。原先的公共名称是允许“任何请求”,这样的公共名称可以匹配任何访问请求,外网用户无论是访问Perth还是Denver都能和这条规则匹配上,这样一来其他的Web站点发布规则就等于无用了。因此我们要把Denver发布规则的公共名称改为Denver.contsoo.com,如下图所示。
修改后的发布规则如下图所示。
好了,万事俱备,只欠测试了,我们在Istanbul上开始测试,首先用IE访问Perth,如下图所示,访问成功了。
再来访问Denver,如下图所示,也成功了!
有的朋友可能会想,如果Istanbul用IP访问,会访问到哪个内网的网站呢?看看下图的访问结果,大家很可能会大吃一惊,为什么用IP访问会被ISA拒绝呢?因为目前两个发布规则的公共名称没有一个能和192.168.1.254匹配,因此ISA认为Istanbul的访问请求无法匹配任何一条发布规则,只能用默认规则进行拒绝。
如果我们希望用IP访问能够访问到Denver,那就修改Denver的发布规则,在发布规则的公共名称加上一条IP地址,如下图所示。
这次再用IP访问,由于IP地址可以和Denver发布规则中的公共名称匹配上,因此顺理成章地访问到了Denver,如下图所示。
总结:由此可见,ISA可以根据发布规则的公共名称对外网的访问请求进行Web过滤,功能远远强于一般路由器的端口映射发布单个站点非常简单。从实验过程来看,发布单个站点非常简单,发布多个网站只要注意用公共名称区分发布规则,其实也不难。但发布Web站点还有不少棘手的问题,我们在后续文章中继续讨论。
域名跳转代码基本上可以分为服务器端跳转和客户端跳转,两种代码是有不同区别的。
第一种:域名在服务器端跳转
Response.Redirect(http://将这里改成要跳转的域名)Response.End
第二种、如果你的域名要在客户端跳转,可以这样:
<script language="javascript" type="text/javascript">window.location="http://将这里改成要跳转的域名";;</script>
第三种:如果你要让域名页面显示几秒钟之后跳转,可以在html代码的部分加上这样的域名跳转代码:
<meta http-equiv="refresh" content="3; url=http://将这里改成要跳转的域名">
以上三种是也比较常见,比较常用的免费域名跳转代码运行平台Win9x WinNT Win2000 WinME WinXP。
第四种:不隐藏域名跳转之后的地址
<html><body><meta http-equiv="refresh" content="0.1;url=将这里改成要跳转的域名"></body></html>
第五种:可隐藏域名跳转之后的地址:
<html><frameset framespacing="0" border="0" rows="0" frameborder="0"><frame name="main" src="将这里改成要跳转的域名" scrolling="auto" noresize></frameset></html>
第六种:定时的域名跳转代码
<meta http-equiv="refresh" content="3;rul=http://将这里改成要跳转的域名">
此代码可以让网页在一定的时间内,跳转到另外一个网页上,其中content=” 为跳转前停暂的秒数,rul= 为跳转的域名
<meta http-equiv="refresh" content="3;rul=http://将这里改成要跳转的域名">
此代码可以让网页在一定的时间内,跳转到另外一个网页上,其中content=” 为跳转前停暂的秒数,rul= 为跳转的域名。
再来介绍一下:所谓301永久重定向(或叫301转向,301跳转),是指当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。
301永久重定向有何作用?在哪些情况下适用?
从301永久重定向的定义可以看出,它是一种状态码,会向搜索引擎或浏览器发出信息:本网页的地址已经永久改变了。并会把新的地址传达过去。而相应的就是:我们输入网址A访问,显示出来的是转向后的网址B,转向过程极短以至无法察觉。所以,301永久重定向对于访客来说,作用就是将他要访问的而实际上已不存在的网址转到另一个网址,避免出现“此网页无法显示”之类的错误;对于搜索引擎优化|SEO来说,给搜索引擎一个友好的信息,告诉它此页面已永久重定向,避免搜索引擎找不到页面。这对于网站的SEO是很重要的,因为301永久重定向对SEO无任何不好的影响!而且网页A的关键词排名和PR级别都会传达给网页B!
1、当出于需要删除网站中的某些目录时,可以通过301永久重定向将此目录重定向到网站首页。
2、网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和SEO。
3、想要多个域名同时指向同一网站时,通过301永久重定向可以实现。一般的虚拟主机后台提供将example.com和www.example.com等多个域名绑定到同一网站的功能,但这样对收录可能有影响,而用301永久重定向就没有这样的担忧。
4、实现网址规范化。
如何实现301永久重定向?
实现的方法主要描述两种,一种是通过容器的配置修改实现,另外一种是程序语言实现
一、容器的配置修改方法:
1)IIS容器实现301转向:
1.internet信息服务管理器中,在想要重定向的网页或目录上点击鼠标右键
2.选择-重定向到URL
3.输入目标页面的地址
4.选中-资源的永久重定向
5.应用并确定
2)Apache容器下修改方法:
1、修改.htaccess文件,输入下列内容(需要开启mod_rewrite):
将不带WWW的域名转向到带WWW的域名下:
RewriteEngine onRewriteCond %{HTTP_HOST} ^axiaoke.cn[NC]RewriteRule ^(.*)$ http://将这里改成要跳转的域名/$1 [L,R=301]②重定向到新域名: RewriteEngine onRewriteRule ^(.*)$ http://将这里改成要跳转的域名/$1 [L,R=301]
2、Apache下vhosts.conf中配置301转向:
<VirtualHost *:80>ServerName www.axiaoke.cnDocumentRoot /home/</VirtualHost><VirtualHost *:80>ServerName itdcw.comRedirectMatch permanent ^/(.*) http://将这里改成要跳转的域名/$1</VirtualHost>
3、Ruby容器中实现301转向:
def old_actionheaders["Status"] = "301 Moved Permanently"redirect_to "http://将这里改成要跳转的域名"end
4、Coldfusion容器中实现301转向:
<.cfheader statuscode="301" statustext="Moved permanently"><.cfheader name="Location" value="http://将这里改成要跳转的域名">
二、程序语言跳转方法:
1、ASP的301跳转代码:
<%@ Language="VBScript" %><%Response.Status = "301 Moved Permanently"Response.AddHeader "Location", "http://将这里改成要跳转的域名"%>
2、PHP的301跳转代码:
<?header("HTTP/1.1 301 Moved Permanently");header("Location:http://将这里改成要跳转的域名");exit();?>
3、ASP.Net的301跳转代码:
<script runat="server">private void Page_Load(object sender, System.EventArgs e){Response.Status = "301 Moved Permanently";Response.AddHeader("Location","http://将这里改成要跳转的域名");}</script>
4、CGI Perl的301跳转代码:
$q = new CGI;print $q->redirect("http://将这里改成要跳转的域名");
5、JSP的301跳转代码:
<%response.setStatus(301);response.setHeader( "Location", "http://将这里改成要跳转的域名" );response.setHeader( "Connection", "close" );%>
ShadowsocksR服务端是Python编写的,所以需要Python环境。
我现在手上没有 海外的Windows服务器,所以只是在本地自己搭建测试了一下,测试系统是 Windows 7,至于 Windows Server 服务器系统是否安装了Python我也不清楚,大家自己检查吧。
另外,ShadowsocksR服务端因为加密方式,所以需要安装OpenSSL。
打开 Python官网-下载页面 ,找到 Python 2.7.xx - xxxx-xx-xx ,然后根据你的 Windows操作系统位数 下载对应的安装包:
Download Windows x86 MSI installer(32位下载这个)
Download Windows x86-64 MSI installer(64位下载这个)
下载后开始安装。
第一步,选择 Install for all users ,然后点击 Next > 按钮继续下一步。
第二步,选择Python安装目录,然后点击 Next > 按钮继续下一步。
注意:为了避免出错或不兼容,Python/OpenSSL/ShadowsocksR服务端都不要安装在 目录包含中文字符和特殊字符的文件夹中!
第三步,选择要安装的内容,注意最后一个是自动设置环境变量的,默认是不设置,请如图所示点击 Add python.exe to Path 选项前面的按钮,然后选择第一个 Will be installed on local hard drive 选项。
其他的选项均如图所示,然后点击 Next > 按钮继续下一步,下一步之后就是安装Python了,安装完毕后关闭就好了。
打开 OpenSSL官网-下载页面,翻到网页中间,然后根据你的 Windows操作系统位数 下载对应的安装包:
Win32 OpenSSL v1.x.xx Light(32位下载这个)
Win64 OpenSSL v1.x.xx Light(64位下载这个)
注意是那个 3MB 左右大小的文件,30MB 左右的是开发者用的。
下载后开始安装,点击 Next > 按钮继续下一步。
第二步,选择第一个选项 I accept the agreement (同意),然后点击 Next > 按钮继续下一步。
第三步,选择OpenSSL安装目录,然后点击 Next > 按钮继续下一步。
注意:为了避免出错或不兼容,Python/OpenSSL/ShadowsocksR服务端都不要安装在 目录包含中文字符和特殊字符的文件夹中!
第四步,选择第一个选项 The Windows system directory ,点击 Next > 按钮继续下一步,然后就会开始安装OpenSSL了。
第五步,安装完成后不要勾选下图中任何选项,直接点击 Finish 按钮 完成安装。
安装完成后还需要设置一下。
进入你安装的OpenSSL文件夹,比如我的是 D:\OpenSSL-Win32\bin
,然后找到 libcrypto-1_1.dll
和 libssl-1_1.dll
文件,我们需要修改一下文件名。
去掉文件名最后的 -1_1
,改为 libcrypto.dll 和 libssl.dll
。
然后继续下面设置环境变量。
Python和OpenSSL安装完后,我们就可以开始设置环境变量了。
首先点击左下角开始菜单 —— 运行 —— 输入 CMD 并回车。
然后在打开的CMD窗口中输入: Python -V
以为上面的安装步骤中,我们已经选择了自动添加环境变量,所以应该是直接如下显示:
C:\Users\Administrator>python -VPython 2.7.13
如果显示命令不存在,那么说明环境变量设置失败,需要手动设置。
点击左下角开始菜单 — 控制面板 — 系统 — 高级系统设置 — 高级 选项卡 — 环境变量 按钮 — 系统变量 Path
如下图所示,Path变量值前面应该会有: D:\Python27\;D:\Python27\Scripts;
如果没有就自己添加,当然,这个只是 Python的环境变量,OpenSSL也需要设置环境变量。
注意:安装目录请自行替换为你的安装目录!
完整的环境变量格式: D:\Python27\;D:\Python27\Scripts;D:\OpenSSL-Win32\bin\;XXXXXXXXX
XXXXXXXXX
指的是原来系统自带的环境变量值,只要把Python和OpenSSL的环境变量值加到 系统自带的环境变量值前面就好了。
注意:每个环境变量值都需要用 分号 ; 来分割开!
设置完后一路确定,然后重新打开 CMD窗口,输入 Python -V
测试Python的环境变量是否设置。
然后输入 openssl
命令并回车,然后会发现变成这样:
C:\Users\Administrator>opensslOpenSSL>
然后继续输入 help
命令并回车,就会出来一大堆的说明:
出现这个,就说明OpenSSL的环境变量设置完成。
如果设置环境变量正确,但是依然提示 openssl不是内部命令 ,那么尝试重启电脑/服务器,部分出现这种问题的人重启后得到了解决(前提是环境变量配置无误)。
C:\Users\Administrator>opensslOpenSSL> help Standard commandsasn1parse ca ciphers cmscrl crl2pkcs7 dgst dhparamdsa dsaparam ec ecparamenc engine errstr exitgendsa genpkey genrsa helplist nseq ocsp passwdpkcs12 pkcs7 pkcs8 pkeypkeyparam pkeyutl prime randrehash req rsa rsautls_client s_server s_time sess_idsmime speed spkac srpts verify version x509 # 后面省略...OpenSSL>
在OpenSSL安装完后,系统变量中会自动添加一个变量,如下图所示,如果你的没有,那么请自行添加。
变量名:OPENSSL_CONF
变量值:D:\OpenSSL-Win32\bin\openssl.cfg
设置环境变量,例如工具安装在C:\OpenSSL-Win64,则将C:\OpenSSL-Win64\bin;
复制到Path中
Windows系统安装运行ShadowsocksR服务端的难点主要就是 这两个环境变量问题,所以如果操作不好,可以联系我~
下载ShadowsocksR最新服务端文件:Github项目地址、Github下载地址
解压到任意目录,然后进入解压后得到的 shadowsocksr-manyuser
文件夹,复制一份 config.json
文件并改名为 user-config.json
。
注意:为了避免出错或不兼容,Python/OpenSSL/ShadowsocksR服务端都不要安装在 目录包含中文字符和特殊字符的文件夹中!
打开配置文件 user-config.json
,并修改为你要设置的 端口/密码/加密方式/协议/混淆 等参数。
配置文件各项参数说明:Github wiki
注意:ShadowsocksR服务端最新版本默认加密方式从 aes-256-cfb 改为 aes-128-ctr 了。
{ "server": "0.0.0.0", "server_ipv6": "::", "server_port": 8388, "local_address": "127.0.0.1", "local_port": 1080, "password": "m", "method": "aes-128-ctr", "protocol": "auth_aes128_md5", "protocol_param": "", "obfs": "tls1.2_ticket_auth_compatible", "obfs_param": "", "speed_limit_per_con": 0, "speed_limit_per_user": 0, "additional_ports" : {}, // only works under multi-user mode "timeout": 120, "udp_timeout": 60, "dns_ipv6": false, "connect_verbose_info": 0, "redirect": "", "fast_open": true}
启动ShadowsocksR服务端
打开CMD窗口,然后依次输入:
D:# 进入D盘cd shadowsocksr-manyuser\shadowsocks# 进入ShadowsocksR子目录python server.py -c D:\shadowsocksr-manyuser\user-config.json# 运行ShadowsocksR服务端
注意:请更换 ShadowsocksR服务端目录为自己安装的目录。
不出意外的话,就会如这样显示(可能会有所差别):
C:\Users\Administrator>python server.py -c D:\shadowsocksr-manyuser\user-config.json loaded collections.OrderedDict IPv6 supportINFO: loading config from D:\shadowsocksr-manyuser\shadowsocks\../shadowsocks\../user-config.json2017-02-09 18:34:29 INFO util.py:85 loading libcrypto from D:\OpenSSL-Win32\bin\libcrypto.dll2017-02-09 18:34:29 INFO shell.py:80 ShadowsocksR 3.0.2 2017-01-082017-02-09 18:34:29 INFO asyncdns.py:324 dns server: [('8.8.4.4', 53), ('8.8.8.8', 53)]2017-02-09 18:34:29 INFO server.py:106 server start with protocol[auth_aes128_md5] password [m] method [aes-128-ctr] obfs [tls1.2_ticket_auth_compatible] obfs_param []2017-02-09 18:34:29 INFO server.py:122 starting server at [::]:83882017-02-09 18:34:29 INFO server.py:142 starting server at 0.0.0.0:8388
停止ShadowsocksR服务端
如果你需要停止 ShadowsocksR服务端,只需要在CMD窗口按下 Ctrl+C
按键就可以终止ShadowsocksR服务端的运行了。
启动后,你就可以尝试连接一下ShadowsocksR服务端了。
我是在本机上面测试的,密码什么的都是配置文件默认的,所以直接是 127.0.0.1:8388
,然后ShadowsocksR设置全局模式,尝试访问国内网站,如果不报错,那么说明成功了。
如果你是在外部Windows服务器上面运行的,那么你需要关闭防火墙或者开放防火墙端口,我很久没用了,也忘记怎么搞了,估计谷歌很容易搜索到。
注意:如果是本机测试,建议把ShadowsocksR服务端的本地监听端口和ShadowsocksR客户端的本地监听端口分开(默认都是1080)。
参考资料:Github Wiki:https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup-on-Windows
No such file or directory: 'usermysql.json'
修改mysql.json为usermysql.json
libcrypto(OpenSSL) not found
ssserver启动时提示libcrypto(OpenSSL) not found,这个问题一般发现在windows上;
问题分析:
windows 的位数,python安装的版本位数,及openssl for windows安装的版本及位数不对应造成的。
必须统一起来:
如:windows 64位,python也要安装64位的,openssl for windows的位数也要是64位;
但有一个问题,就是openssl for windows的版本可能会有造成一些问题,所以可以多试几个版本,目前来说 1.0.2这个版本可以使用。
通过测试如下:
windows64 + python64 2.7.13 + Win64OpenSSL-1_0_2k.exe 可以正常运行。
备注:
此openssl for windows版本是独立安装的exe文件的安装版本,和在python中import OpenSSL不太一样。
来自于157.0.111.176江苏省宿迁市 联通网友评分!
来自于42.119.148.32越南胡志明市网友评分!
来自于85.237.206.197英国英格兰伦敦网友评分!
来自于60.246.51.76澳门特别行政区网友评分!
来自于43.249.50.166印度网友评分!
来自于106.113.13.179河北省石家庄市 电信网友评分!
来自于101.94.224.43上海市上海市 电信网友评分!
来自于124.126.3.110北京市北京市 电信网友评分!
来自于106.87.116.73重庆市重庆市 电信网友评分!
来自于49.157.47.254菲律宾网友评分!
来自于3.112.41.223日本东京网友评分!
来自于106.87.116.73重庆市重庆市 电信网友评分!
来自于156.224.31.74香港特别行政区网友评分!
来自于118.150.135.228台湾省新北市网友评分!
来自于138.199.21.219欧洲网友评分!
来自于49.230.8.237泰国网友评分!
来自于1.200.36.188台湾省网友评分!
来自于94.66.59.128希腊网友评分!
来自于101.9.174.29台湾省网友评分!
来自于218.35.154.227台湾省新北市网友评分!
来自于111.55.11.245中国 移动网友评分!
来自于103.205.179.169巴基斯坦网友评分!
来自于183.200.16.191山西省太原市 移动网友评分!
来自于183.200.16.191山西省太原市 移动网友评分!
来自于176.97.73.32英国网友评分!
来自于46.232.121.89俄罗斯莫斯科网友评分!
来自于114.45.39.108台湾省台北市网友评分!
来自于164.155.132.208南非网友评分!
来自于14.192.208.96马来西亚吉隆坡网友评分!
来自于98.98.83.85美国佛罗里达网友评分!