web-dev-qa-db-ja.com

MacのすべてのTCPトラフィックがSOCKS5プロキシを通過することを確認するにはどうすればよいですか?

ポート付きのSOCKSプロキシがあります。

MACで使用するにはどうすればよいですか?ネットワーク設定でどの設定を変更しますか?

13
Alex

システム設定->ネットワーク->(ウィンドウの左側でネットワークを選択し、右下の[詳細]を選択)->プロキシ(上部のタブ)が機能しないのはなぜですか?

enter image description here

3
Everett

SSHサーバーを自分で設定できる場合、無料の sshuttle はすべてのTCPトラフィックを接続にトンネルし、すべてのファイアウォールの作業を代行させます。

すべてのTCPトラフィックとDNS要求をリモートSSHサーバーに転送するために、コマンドは十分に単純です:

sshuttle --dns -vr ssh_server 0/0

TCPおよびDNSに加えて、sshuttleはUDP、ICMP、pingなどの他のリクエストを転送しません。

詳細と例については、記事 日常業務でのSshuttleの使用 を参照してください。

6
harrymc

システム全体のプロキシ設定を設定することは良いスタートですが、すべてのトラフィックがプロキシを通過していることを確認するためにiptablesの使用を検討することもできます。一部のアプリケーションはシステム全体の構成設定(その中ではFirefox)を使用しないため、直接接続を許可せず、プロキシを介してトラフィックをルーティングするだけのためにルールを調整する必要があります。

編集:私は個人的にiptablesルールを使用してVPNからの「漏えい」の可能性を管理していますが、実際には、iptablesがsocksプロキシで直接動作すると誤解されていました。仮想トンネルインターフェイス(vpnの使用など)を作成するには、 tun2socks のようなものが必要です。

その後、次のようなiptablesスクリプトを設定できます。

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
    echo "This script must be run as root" 1>&2
    exit 1
fi

# name of primary network interface (before tunnel)
PRIMARY=eth0

# gateway ip address (before tunnel - adsl router ip address)
# automatically determine the ip from the default route
GATEWAY=`route -n | grep $PRIMARY | egrep "^0\.0\.0\.0" | tr -s " " | cut -d" " -f2`

# provided by tun2socks: interface name
TUNNEL=tun0

# If you'd like, putting the tun2socks command here is a good idea.  It may or may not be necessary to do so, but either way is more convenient than running the two commands separately.

# iptables rules - important!

LOCAL_NET=192.168.0.0/16
#LOCAL_NET=$GATEWAY

# Flush all previous filter rules, you might not want to include this line if you already have other rules setup
iptables -t filter --flush

iptables -t filter -X MYVPN
iptables -t filter -N MYVPN

# Add local routes to routing table
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -Host 23.21.163.237 dev eth0 gw 192.168.1.1

# Add ssh routes to routing table
ip route add table 128 to 192.168.1.0/24 dev eth0
ip route add table 128 default via 192.168.1.1

# Exceptions for local traffic & vpn server
iptables -t filter -A MYVPN -o lo -j RETURN
iptables -t filter -A MYVPN -o ${TUNNEL} -j RETURN
iptables -t filter -A MYVPN --dst 127.0.0.1 -j RETURN
iptables -t filter -A MYVPN --dst $LOCAL_NET -j RETURN
iptables -t filter -A MYVPN --dst ${SERVER} -j RETURN
iptables -t filter -A MYVPN --dst ${VPN_SERVER} -j RETURN

# Add extra local nets here as necessary

iptables -t filter -A MYVPN -j DROP

# MYVPN traffic leaving this Host:
iptables -t filter -A OUTPUT -p tcp --syn -j MYVPN
iptables -t filter -A OUTPUT -p icmp -j MYVPN
iptables -t filter -A OUTPUT -p udp -j MYVPN

当然、このスクリプトに特定のネットワークを反映させる必要があります(つまり、192.168.0.0/24サブネットのようなものを使用している場合は、それに応じて調整してください)。また、これは私がVPNで使用するスクリプトに非常に厳密に基づいているため、MYVPNまたはVPNに関するすべての言及があります-VPNを使用していないときはtun2socksは効果的に動作するので、すべてが同じように動作します。

そして、Unix.SEに this answer を送ってくれたことに感謝します。

もう一度編集します。つまり、OS Xは実際にiptablesではなくipfwを使用してこれを実行しているようです(申し訳ありませんが、私はほとんどLinuxを使用しており、OS Xにはiptablesが用意されていると思いました)。スクリプトを適合させることができる同値性があり、そのいくつかは指摘されています hereman ipfwは、構文をまっすぐに設定する必要があります。元のiptablesスクリプトはテンプレートとして残しておき、概念的に何が行われているのかを確認できるようにします。 WaterRoof は、ipfwをもう少し使いやすくするのに役立つように見えます。他のフロントエンドも利用できる場合があります。

5
0xDAFACADE

利用可能なソリューションはいくつかあります。それらのいずれも、いくつかの設定を変更するほど単純ではありません。これは、プロキシの目的全体を損なうためです。これは、特定のアプリケーションを別のルートにルーティングすることです(目的ステルス、セキュリティ、ID保護...)(おそらくより高速な)ローカルルートにアクセスしたままにします。

一部は要件のために破棄されますが、完全を期すために、VPN、SSHトンネル、pfctlの使用(パケットフィルターおよびNAT制御インターフェース)) 。また、Torは確かにあなたが意図した用途向けに設計されていませんが、すべてのトラフィックをtheirプロキシ経由でルーティングできます。

これらのアプリケーションはすべて無料であり、使用するには多くの工夫が必要です。一方、有償のアプリケーションもあり、ほとんどの作業は有料ですが、他の誰かが行っています。

Proxycap

プロキシサーバー経由でコンピューターのネットワーク接続をリダイレクトできます。どのアプリケーションがプロキシ経由でどのような状況でインターネットに接続するかをProxyCapに指示できます。これは、インターネットクライアントを再構成する必要なしに、ユーザーフレンドリーなインターフェースを介して行われます。

または、Proxifier for Macがあります(注意:10.8までしかサポートされていません)。どれ

プロキシサーバーを介した作業をサポートしないネットワークアプリケーションが、SOCKSまたはHTTPSプロキシおよびチェーンを介して動作することを許可します。

0
MariusMatutiae

[設定]-> [ネットワーク]に移動します。ロックされているかどうかを確認し、それをクリックして、システム管理者アカウントのパスワードを入力します。次に、[詳細設定]-> [プロキシ]-> [ソックスプロキシの確認]をクリックします。プロキシ設定を指定します。

0
J Bourne