What's?
WSLにはautoProxyというWindowsのプロキシ設定を引き継ぐ機能があります。
この挙動を確認しておこうかなと。
autoProxy
autoProxyは、.wslconfigのautoProxyで設定します。
WSL を使用したネットワーク アプリケーションへのアクセス / 自動プロキシ
WSL Settingsだと「ネットワーク」内にありますね。
この設定がWSLディストリビューションにどう影響するか見ていきます。
環境
今回の環境はこちらです。
PS > [System.Environment]::OSVersion
Platform ServicePack Version VersionString
-------- ----------- ------- -------------
Win32NT 10.0.26200.0 Microsoft Windows NT 10.0.26200.0
PS > $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 26100 8457
PS > wsl --version
WSL バージョン: 2.7.3.0
カーネル バージョン: 6.6.114.1-1
WSLg バージョン: 1.0.73
MSRDC バージョン: 1.2.6676
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.26200.8457
フォワードプロキシを用意する
ひとまずフォワードプロキシがないと話が始まりません。これはRocky Linux 10で用意しましょう。
$ cat /etc/redhat-release
Rocky Linux release 10.1 (Red Quartz)
$ uname -srvmpio
Linux 6.12.0-124.56.1.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 12 18:40:07 UTC 2026 x86_64 unknown unknown GNU/Linux
$ httpd -V
Server version: Apache/2.4.63 (Rocky Linux)
Server built: Dec 10 2025 00:00:00
Server's Module Magic Number: 20120211:139
Server loaded: APR 1.7.5, APR-UTIL 1.6.3, PCRE 10.44 2024-06-07
Compiled using: APR 1.7.5, APR-UTIL 1.6.3, PCRE 10.44 2024-06-07
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
雑ですが、フォワードプロキシ設定はこんな感じにしました。
Listen 8080
ProxyRequests On
<Proxy "*">
Require ip 192.168.0.0/16
</Proxy>
このプロキシサーバのIPアドレスは192.168.0.7とします。
Windowsのプロキシを設定した状態で、WSLディストリビューションを起動する
Windowsに作成したフォワードプロキシを設定します。
WSLディストリビューションを作成します。
PS > wsl --install -d Ubuntu-24.04
autoProxyは有効なままです。
起動したWSLディストリビューションの環境変数の設定を見ると、確かにWindowsのプロキシ設定が引き継がれています。
$ env | grep -i proxy
no_proxy=localhost,192.168.*.*,172.16.*.*,10.*.*.*,<local>
https_proxy=http://192.168.0.7:8080
NO_PROXY=localhost,192.168.*.*,172.16.*.*,10.*.*.*,<local>
HTTPS_PROXY=http://192.168.0.7:8080
HTTP_PROXY=http://192.168.0.7:8080
http_proxy=http://192.168.0.7:8080
引き継がれていますが、no_proxyはフォーマットがWindowsのままですね…。
なので、WindowsとLinuxコマンドで互換性のない書き方をしてしまうと、no_proxyは機能しないことになります。
たとえば192.168.0.7にcurlでアクセスしようとすると、--noproxyをつけないとプロキシを経由してしまいました。
$ curl --noproxy 192.168.0.7 192.168.0.7
Hello World
こうなると、プロキシの除外設定についてはautoProxyって微妙ですねと思います。
プロキシ除外設定を含む場合は、autoProxyをオフにするか、いっそ割り切って.bashrcにでもプロキシの設定をすればよいのではないでしょうか。
export http_proxy=http://192.168.0.7:8080
export https_proxy=http://192.168.0.7:8080
export no_proxy=localhost,192.168.0.0/16,172.16.0.0/16,10.0.0.0/8
export HTTP_PROXY=${http_proxy}
export HTTPS_PROXY=${https_proxy}
export NO_PROXY=${no_proxy}
これでプロキシ設定を上書きできます。
ちなみにautoProxyをオフにすると
当然ですがWSLディストリビューションにはWindowsのプロキシ設定は引き継がれなくなります。
$ env | grep -i proxy
個人的には、ここは気を利かせなくても…と思います。


