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


回答:


3

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

ここに画像の説明を入力してください


9
これはすべてのアプリで機能するわけではありません。Skype、Chrome、その他はこれらの設定をバイパスしているようです-少なくとも10.10では...
Ingwie Phoenix

あなたの言ったことは本当です。他のコメントでも言及されています。著者は彼らがシンプルであることを望んでいることを明確にしたので、私はシンプルから始めて、私が投稿した答えについて彼らには役に立たないのかと尋ねました。彼らがそれを選択したので、明らかにそれは彼らのために働きました。セキュリティは常に100%の回答とは限りません。ほとんどの場合、それはリスク低減についてです。
エベレット2014

1
端末はシステムネットワークsocks5プロキシ設定を採用できませんが、アプリ全体で問題ありません。
E_Jovi 2017年

5

システム全体のプロキシ設定を設定することは良いスタートですが、すべてのトラフィックが確実にプロキシを通過するように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でこの回答に感謝し、この回答に正しい方向に私を導いてくれた。

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


複雑すぎるので、iptablesを使いたくありません。Tun2socksはSSHとサーバーが必要なようです。IPとポートしか持っていない...どうすればIPとポートを使用できますか?
Alex

tun2socksSSHとサーバーは必要ありません。彼らのサイトの例は、最初にSSHを使用してSOCKSプロキシを作成するためのものです。SOCKSプロキシがすでにある場合は、まったく不要です。そして、はい、iptables私の側では間違った方法でした。BSDベースのOS X は、Linuxカーネル用のではipfwなくを使用しiptablesます。複雑な点につ​​いては、使いやすい方法で設定するフロントエンドを見つけることができるかもしれませんが、私はこの問題についての経験がありません。とにかくそれが低レベルで複雑であることは、なぜそれが仕事にそんなに能力があるのか​​と多くの関係があります。
0xDAFACADE

ナビゲートをipfw容易にするのに役立つ場合は、回答に使用するフロントエンドを追加しました。
0xDAFACADE 2014

5

自分でSSHサーバーを設定できる場合は、無料のシャトルですべてのTCPトラフィックを接続にトンネリングし、すべてのファイアウォールを機能させることができます。

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

sshuttle --dns -vr ssh_server 0/0

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

詳細と例については、「毎日の仕事でのシャトルの使用参照してください。


質問者にはその目的で使用するSSHサーバーがありませんが、この素晴らしいツールと機能がもたらすことを思い出していただきありがとうございます。その構文の単純さは素晴らしく、バックエンドでiptablesまたはipfwのいずれかを処理できることは、ルーフトップから賞賛に値する機能です。
0xDAFACADE

これはすべてのTCPトラフィックをリダイレクトするわけではありません。たとえば、VMWareを実行している場合は、これをバイパスします。
Soheil、2015

0

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

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

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

Proxycap

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

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

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.