Hosts用法两则
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/344)的形式标明文章原始出处和作者信息及本声明。Hosts文件是好东西,还是跨平台的,不仅可以方便局域网名称的映射、加快域名解析速度,甚至还能让你访问某些无法解析域名的网站。今天我又琢磨出这个文件的另外两种用法。
利用Hosts文件隐藏公网地址
我有一个放在公网上的地址,用apache提供的web服务,但是我并不想让它公开,而是只允许我自己用;如果架在本机,那我出门或者回家就用不了了,同理只允许ip段的访问也不方便;用一个比较“深”的地址来访问也不是什么好办法,别说spider肯定能抓到,从这里点出去的链接,referer就把你给出卖了。
解决的思路就是,利用Hosts文件作出一个只有我自己能用的“域名”,当我使用这个域名访问的时候,由于本机的Hosts文件,它会解析到正确的地址,而别人或者蜘蛛或者从referer链接回来的访问,都会由于无法解析dns而失败。
当然这种做法只是一个小把戏而已,如果别人也知道域名和ip就不保密了,所以仍然需要结合其他限制访问方式使用。另外,对于只知道ip的访问,我们还是有办法的,将apache的conf如下设置:
NameVirtualHost *
<VirtualHost *>
DocumentRoot /var/www/apache2-default/
ServerName w3c.com
</VirtualHost>
<VirtualHost *>
DocumentRoot /path/to/some/file/
ServerName autobots.fwolf.com
</VirtualHost>
这样如果不知道autobots.fwolf.com这个秘密地址,就是知道ip也进不来。另外如果把autobots.fwolf.com这个域名再作个解析,就会更有意思了。
Hosts文件结合apache的VirtualHost创建易于调试的开发环境
这就比上面的简单多了,一般搭建项目调试环境的时候,如果管理不慎,会把服务器的设置搞得一塌糊涂,另外多项目并存的情况下,需要的环境、配置各不相同,有的还需要必须在网站根目录下运行,这种情况下,就可以用Hosts文件结合apache的virtualhost让一台开发服务器变身为多台。创意参考自虚拟主机的做法。
首先还是用hosts文件定义出别名来,比如computer1、computer2都指向一台服务器,但是这两个地址就像是在用两台电脑一样了;然后再在apache中用name方式的virtualhost定义project1、project2(每个project单独使用一个配置文件更方便,每个virtualhost还能够定制相应的环境)。
现在,知道该怎么使用了吧?要不怎么说hosts文件是个好东西呢。
Update @ 2007-08-09
MT主机用户可以在Domain -> DNS Settings中添加假的A记录,只要没有用MT来作dns服务器,那么这条A记录就只会在这台主机上有效。
No tags for this post.
Save to Browser Favorites
Ask
backflip
blinklist
BlogBookmark
Bloglines
BlogMarks
Blogsvine
BUMPzee!
CiteULike
co.mments
Connotea
del.icio.us
DotNetKicks
Digg
diigo
dropjack.com
dzone
Facebook
Fark
Faves
Feed Me Links
Friendsite
folkd.com
Furl
Google
Hugg
Jeqq
Kaboodle
linkaGoGo
LinksMarker
Ma.gnolia
Mister Wong
Mixx
MySpace
MyWeb
Netvouz
Newsvine
PlugIM
popcurrent
Propeller
Reddit
Rojo
Segnalo
Shoutwire
Simpy
sk*rt
Slashdot
Sphere
Sphinn
Spurl.net
Squidoo
StumbleUpon
Technorati
ThisNext
Webride
Windows Live
Yahoo!
Email This to a Friend
If you like this then please subscribe to the
August 4th, 2007 at 5:31:06
第一种方法挺不错的,厉害。
[Reply]
August 7th, 2007 at 10:13:41
动态载入js并执行(未成功)这篇
深受启发 谢谢
不过我如果不是外部调用JS文件
var s = document.createElement(”script”);
s.type=”text/javascript”;
s.innerHTML = “alert(1)”;
document.body.appendChild(s);
这样在FIREFOX下OK,在IE下就出错了
有没解决方法,script的innerHTML 在IE下好像是只读属性
[Reply]
August 7th, 2007 at 11:22:12
@kevin 有没有尝试过script对象的src属性?也可以查一下ecmascript文档,看看属性是否只读的。
[Reply]