sudo route add
現在私はOpenVPNを使用するときにトラフィックを分割するためにIPテーブルを使用しており、直接接続を好むIPリストに対してスクリプトを実行してこれを行います。
これは質問を投稿しました。 URLを要求すると、それはまだOpenVPNのDNSを介して実行され、直接接続すると機能しない可能性があるIPを返します(私は中国にあり、GFWはFacebook、Google、および多くの外国のIP /ドメインをブロックするため、ローカルDNSも利用できます。ありません)。
理想的には、ローカルDNを最初に実行してから、どのDNS(ローカルまたは国際)を使用して接続するかを把握するACLまたはPACがあります。 LinuxまたはUnixでは、これはどのように行われますか?
ベストアンサー1
iptables
まず、ルーティング時に何らかの理由で複雑なタスクを実行する必要がない限り、通常は両方を使用する必要はありません。
完全なアドレスリストに基づいてトラフィックを分割するのか、プレフィックスごとにトラフィックを分割するのかなどを明らかにしませんでした。したがって、質問を編集してこの情報を提供してください。
完全なアドレスに基づいて分割する場合、最も簡単な回避策はそのアドレスの名前をに追加することです/etc/hosts
。他に設定しない限り、このファイルの検索はDNS検索よりも優先されますnssswitch.conf
。もちろん、変更したら、このファイルとルーティングファイルのIPアドレスを更新する必要があります。
/etc/resolv.conf
別のオプションは.fromを使用することですman 5 resovler
。
nameserver Name server IP address
リゾルバーが照会する必要があるネームサーバーのインターネットアドレスは、[...]最大MAXNS(現在3つを参照)ネームサーバーを各キーワードに1つずつリストできます。複数のサーバーがある場合、パーサーライブラリはリストされた順序で照会します。
ただし、このファイルは通常システムの他のさまざまな部分で自動的に生成され、詳細はLinuxディストリビューションによって異なります。したがって、DHCPクライアントおよび/またはOpenVPNが受信したネームサーバー情報でこのファイルを更新するためにどのスクリプトを実行しているかを調べて、両方のエントリが正しい順序で終了するようにスクリプトを変更する必要がnameserver
あります。resolv.conf
この形式は、中国のDNSサーバーがブロックされたドメインのIPアドレスを返すことができない場合にのみ機能します。たとえば、返されたIPがブロックされていることを確認するためにテストする必要がある場合や、他の種類のテストが必要な場合など、中国のDNSサーバーが異なる動作をする場合は、はるかに難しいでしょう。一種の実装を使用する必要があります。ローカルDNSプロキシをテストし、既存のプロキシソフトウェアのコードを変更できます。
VPNを使ってみた中国の他の人もすでに同じ問題を抱えていたと思います。したがって、解決策があるかもしれませんが、国際社会ではこれについて知らないかもしれません。