使用Linux(Debian)
在我现在的工作地点,我在一个ISA代理服务器后面,我不能在这台机器上做任何改变。
我正在开发软件,并使用kvmbuild立虚拟机,几乎一切正常。 虚拟机在虚拟networking192.168.122.0上
在/ etc / profile中我有以下的环境variables:
http_proxy=http://xxxx:8080/ no_proxy=localhost,192.168.122.0/24
我在/ etc / hosts中有VM的名字。
在主机上,我可以ping通虚拟机,并通过名称连接到ssh。
我不能使用浏览器连接到虚拟机上运行的Apache服务器,名称parsing传递给ISA服务器,我得到一个失败,显示主机名无法find(不惊讶企业DNS不知道我的虚拟机)..
所有的浏览器都一样,所以
elinks http://vmname
即使失败了
elinks -lookup vmname
为VM返回正确的IP地址。
但是,“getent hosts vmname”会为VM返回正确的本地IP。
如果我做 :
http_proxy="" elinks http://vmname
那么我可以通过HTTP连接好。
有没有configuration的地方,我错过了? 我看过/etc/nsswitch.conf&/etc/host.conf&/etc/resolv.conf
我注意到“host vmname”返回2(SERVFAIL)而不是3(NXDOMAIN)。 是否有可能configuration这样的,我可以连接到外部服务器和我的内部虚拟机,而无需重新configuration每个浏览器?
将虚拟机的名称添加到no_proxyvariables中。
no_proxy=localhost,192.168.122.0/24,vmname
这应该让你修好。 你的问题是,所有的浏览器都发送HTTP请求到你的ISA代理。
首先,您应该将<ip> vmname添加到您的本地/etc/hosts
然后,也可以在broswer设置中添加你的本地networking,以避免使用代理,就像你已经在/ etc / profile中完成了一样。
那么它应该工作。
如果您有代理,则DNS代理在代理中完成。 你不能改变这一点。 修改/ etc / hosts是没用的。 如果目标Web服务器没有虚拟主机,则可以尝试使用IP地址进行连接。 但是如果有虚拟主机,你不能做任何合法的事情。