オフィスの私のMacBookはインターネットにアクセスできない。だから私はスタックオーバーフローをアクセスするSSHを介してインスタントSOCKSプロキシを設定します。私は主に開発用に私のMacBookを使用していますので、/etc/hosts
と仮想ホストを使っていくつかのサイトをローカルでテストしています。SOCKSプロキシがある場合、私のスクリプトは/ etc/hostsに続いてブラウザは表示されないのはなぜですか?
しかし、私は/etc/hosts
にエントリを追加しようとすると、ブラウザは、私が予想サイトに行かない...
私のMacBookのWIFIがオフで、社内LANに接続されている:
IP address: 192.168.8.250
Subnet mask: 255.255.255.0
Router: 192.168.8.1
DNS server: 8.8.8.8
デフォルトでは、インターネットにアクセスできません。
あり、インターネットへのアクセスを持っているLinux開発ボックス(192.168.12.128)は、私は私のMacBookのためのインターネットアクセスを得るためにインスタントSOCKSプロキシを設定します。
ssh -fND localhost:30000 [email protected]
そして、私のMacBookのシステム環境設定で>ネットワーク>プロキシ
(Enable) SOCKS Proxy
SOCKS Proxy sever: 127.0.0.1:30000
Bypass proxy settings for these Hosts & Domains:
*.local, 169.254/16, 127.0.0.1
今、私はウェブをサーフィンすることができます。
は、開発のために、私は、仮想ホストの目的のために/etc/hosts
にいくつかの項目を設定します
127.0.0.1 air.company.com
bash
で:
$ ping air.company.com
PING air.ohho.es (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.046 ms
$ curl air.company.com
<html>OK</html>
それはよさそうだとcurl
がうまくindex.html
の内容を返します。
ただし、ブラウザ(Safari/Chrome/Firefox)でサイト:http://air.company.com
を開こうとすると、curl
のような結果は返されません。 Chromeはエラーを与える:私は/etc/hosts
内の別のエントリを追加した場合
This webpage is not available The webpage at http://air.company.com/ might be temporarily down or it may have moved permanently to a new web address. Error 120 (net::ERR_SOCKS_CONNECTION_FAILED): Unknown error.
:bash
で
127.0.0.1 www.microsoft.com
を、それがOKになります。
$ ping www.microsoft.com
PING www.microsoft.com (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.047 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.128 ms
^C
--- www.microsoft.com ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.047/0.087/0.128/0.041 ms
$ curl www.microsoft.com
<html>OK</html>
私はまた、Rubyスクリプトを使用してみてください:
require 'socket'
require 'curl'
ip = IPSocket.getaddress('www.microsoft.com')
puts ip
puts
http = Curl.get("http://www.microsoft.com/")
puts http.body_str
出力はOKになります。
$ bundle exec ruby openweb.rb
127.0.0.1
<html>OK</html>
をしかし、私はブラウザを使用する場合、ブラウザではなく、私のMacBookからのコンテンツの、リアル Microsoftのサイトのウェブサーバからコンテンツを返す(127.0.01)を。どうして?
p.s:
私はSOCKSプロキシを無効にした場合、ブラウザが正しく127.0.0.1からコンテンツを返します。
LANケーブルを取り外すと、ブラウザは127.0.0.1の内容を正しく返します。