コマンドラインからのプロキシDNSクエリ

コマンドラインからのプロキシDNSクエリ

いくつかのターミナルコマンドに別の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と仮定します。

おすすめ記事