
いくつかのターミナルコマンドに別のDNSサーバー(torではなく私が設定したDNSサーバー)を使用したいと思います。同じだと言う
$ DNS_SERVER=8.8.8.8 dnsify ping example.com
そしてGoogle DNSを使用します。私はsockify、torrify、および他の同様のツールがあることを知っています。私のコマンドに対してこれを明示的に設定したり、少なくとも端末セッションに制限したりできるツール、ハッキング、またはその他の方法を探しています。だから私はコマンドセッションまたはターミナルセッションで別のDNSを使用し、他のすべてのソフトウェアにはデフォルトのDNSを使用します。
プロキシ接続を試みましたが、システムではなくプロキシを使用することを強制することはできませんでした。
それでは、DNSプロキシに使用できるものはありますか?
答え1
環境変数を使用してシステムパーサーをオーバーライドする方法がわかりません。環境変数をresolv.conf
使用してオプションをオーバーライドできますが、定義をRES*
オーバーライドするためには使用できませんnameserver
(参照:resolv.conf
マニュアルページより多くの情報を知りたい場合)。
最良のオプションは、動的リンカーのメカニズムを使用して、システムLD_PRELOAD
サーバーではなく独自のDNSサーバーを使用するようにさまざまなリゾルバー呼び出しをオーバーライドできるライブラリを事前にロードすることです。
私が見つけたものの一つはconf オーバーライドの解決。追加情報ファイルから:
resolvconf overrideは、glibcベースのシステム(ほとんどのLinuxディストリビューションなど)で/etc/resolv.confにリストされているネームサーバーをオーバーライドするためにLD_PRELOADとして使用される共有ライブラリを提供します。
...
/etc/resolv.confに記載されているDNSの代わりにGoogle DNSを使用するには、次の手順を実行できます。
LD_PRELOAD=/usr/lib64/libresolvconf-override.so NAMESERVER1=8.8.8.8 NAMESERVER2=8.8.4.4 myapplication
ソースでコンパイルする必要がありますが、必要な操作を正確に実行しているようです。
メモ:オペレーティングシステムを指定していませんが、Linuxと仮定します。
答え2
ラッパーの解析私はサンバプロジェクトの仕事がうまく行われたと思います。カスタムresolv.conf
およびカスタムDNSレコードを許可しますRESOLV_WRAPPER_HOSTS
。