0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSLのautoProxy(自動プロキシ)の挙動を確認する

0
Last updated at Posted at 2026-05-29

What's?

WSLにはautoProxyというWindowsのプロキシ設定を引き継ぐ機能があります。

この挙動を確認しておこうかなと。

autoProxy

autoProxyは、.wslconfigautoProxyで設定します。

WSL を使用したネットワーク アプリケーションへのアクセス / 自動プロキシ

WSL Settingsだと「ネットワーク」内にありますね。

image.png

この設定が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"

雑ですが、フォワードプロキシ設定はこんな感じにしました。

/etc/httpd/conf.d/proxy.conf
Listen 8080

ProxyRequests On
<Proxy "*">
  Require ip 192.168.0.0/16
</Proxy>

このプロキシサーバのIPアドレスは192.168.0.7とします。

Windowsのプロキシを設定した状態で、WSLディストリビューションを起動する

Windowsに作成したフォワードプロキシを設定します。

image.png

WSLディストリビューションを作成します。

PS > wsl --install -d Ubuntu-24.04

autoProxyは有効なままです。

image.png

起動した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にでもプロキシの設定をすればよいのではないでしょうか。

.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をオフにすると

2026-05-29_10h18_17.png

当然ですがWSLディストリビューションにはWindowsのプロキシ設定は引き継がれなくなります。

$ env | grep -i proxy

個人的には、ここは気を利かせなくても…と思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?