<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ネットワーク on えやみぐさ</title>
    <link>https://blog.aoirint.com/tags/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF/</link>
    <description>Recent content in ネットワーク on えやみぐさ</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>ja</language>
    <lastBuildDate>Sat, 09 Dec 2023 16:50:00 +0900</lastBuildDate>
    <atom:link href="https://blog.aoirint.com/tags/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Dockerコンテナ内の名前解決をプライベートIPアドレスにする</title>
      <link>https://blog.aoirint.com/entry/2023/docker_private_ip_extra_hosts/</link>
      <pubDate>Sat, 09 Dec 2023 16:50:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2023/docker_private_ip_extra_hosts/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Docker Engine 24.0&lt;/li&gt;
&lt;li&gt;Docker Compose 2.21&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プライベートDNSを運用しているネットワークで、
Dockerコンテナからネットワーク内の別のホストに通信したいとき、
デフォルトではGoogle Public DNS&lt;code&gt;8.8.8.8&lt;/code&gt;でホスト名がグローバルIPアドレスに解決されるため、
ISPやCloudflare Tunnelなどの外部を経由して通信することになり、非効率で危険な通信経路になります。&lt;/p&gt;
&lt;p&gt;また、IPアドレスによるアクセス制限を設けている場合、
プライベートIPアドレスがソースとなる通信になるように通信経路を制御したい場合があります。&lt;/p&gt;
&lt;p&gt;以下の設定により、コンテナ内で&lt;code&gt;example.com&lt;/code&gt;が&lt;code&gt;192.168.0.50&lt;/code&gt;に解決されるようになります。&lt;/p&gt;
&lt;h2 id=&#34;docker&#34;&gt;Docker&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo docker run --rm --add-host &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;example.com:192.168.0.50&amp;#34;&lt;/span&gt; hello-world
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.docker.com/engine/reference/run/#managing-etchosts&#34;&gt;Managing /etc/hosts - Docker run reference | Docker Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;docker-compose&#34;&gt;Docker Compose&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;app&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;hello-world&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;extra_hosts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;example.com:192.168.0.50&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.docker.com/compose/compose-file/05-services/#extra_hosts&#34;&gt;extra_hosts - Services top-level element | Docker Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Ubuntu ネットワーク帯域を制限する（Wondershaper）</title>
      <link>https://blog.aoirint.com/entry/2023/ubuntu_limit_network_bandwidth/</link>
      <pubDate>Wed, 28 Jun 2023 19:15:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2023/ubuntu_limit_network_bandwidth/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install wondershaper
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 上下300kbpsに制限&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo wondershaper eno1 &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo wondershaper enp0s31f6 &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 下り1000kbps、上り300kbpsに制限&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo wondershaper eno1 &lt;span style=&#34;color:#ae81ff&#34;&gt;1000&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo wondershaper enp0s31f6 &lt;span style=&#34;color:#ae81ff&#34;&gt;1000&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 帯域制限を解除&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo wondershaper clear eno1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo wondershaper clear enp0s31f6
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://askubuntu.com/questions/20872/how-do-i-limit-internet-bandwidth&#34;&gt;https://askubuntu.com/questions/20872/how-do-i-limit-internet-bandwidth&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;rootユーザでbinshによるコマンド実行をスケジュールatコマンド&#34;&gt;rootユーザで/bin/shによるコマンド実行をスケジュール（atコマンド）&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;wondershaper eno1 300 300&amp;#34;&lt;/span&gt; | sudo at 18:00 2023-06-29
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;wondershaper clear eno1&amp;#34;&lt;/span&gt; | sudo at 2:00 2023-06-29
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Ubuntu ネットワーク通信量をターミナルからグラフで見る（Speedometer）</title>
      <link>https://blog.aoirint.com/entry/2023/ubuntu_terminal_network_traffic_graph/</link>
      <pubDate>Fri, 19 May 2023 09:30:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2023/ubuntu_terminal_network_traffic_graph/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Ubuntu Server 22.04&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install speedometer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;通信量を見たいネットワークデバイスの名前を調べる（&lt;code&gt;eno1&lt;/code&gt;、&lt;code&gt;enp0s31f6&lt;/code&gt;、&lt;code&gt;enp3s0&lt;/code&gt;、&lt;code&gt;eth0&lt;/code&gt;、&lt;code&gt;wlan0&lt;/code&gt;など）。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip addr
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;eno1&lt;/code&gt;を目的のデバイスの名前に置き換えて、以下のコマンドを実行する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;speedometer -l -r eno1 -t eno1 -m &lt;span style=&#34;color:#66d9ef&#34;&gt;$((&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# other examples&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;speedometer -l -r enp0s31f6 -t enp0s31f6 -m &lt;span style=&#34;color:#66d9ef&#34;&gt;$((&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;speedometer -l -r enp3s0 -t enp3s0 -m &lt;span style=&#34;color:#66d9ef&#34;&gt;$((&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;speedometer -l -r eth0 -t eth0 -m &lt;span style=&#34;color:#66d9ef&#34;&gt;$((&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;speedometer -l -r wlan0 -t wlan0 -m &lt;span style=&#34;color:#66d9ef&#34;&gt;$((&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://askubuntu.com/questions/257263/how-to-display-network-traffic-in-the-terminal&#34;&gt;networking - How to display network traffic in the terminal? - Ask Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>自宅サーバのDocker NetworkのIPアドレスプールが枯渇した</title>
      <link>https://blog.aoirint.com/entry/2023/docker_network_ip_address_pool_exhaustion/</link>
      <pubDate>Thu, 26 Jan 2023 04:00:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2023/docker_network_ip_address_pool_exhaustion/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://twitter.com/aoirint/status/1617993934625722368&#34;&gt;https://twitter.com/aoirint/status/1617993934625722368&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;弊自宅サーバでは、サーバソフトウェアや定期実行プログラムのデプロイに、基本的にDocker Composeを使用しています。&lt;/p&gt;
&lt;p&gt;先日、新しいソフトウェアをDocker Composeでデプロイしようとして、以下のエラーが発生しました。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Docker Networkが使用するIPアドレスプールが枯渇し、新しいIPアドレスブロックを確保できなかったという内容のエラーです。&lt;/p&gt;
&lt;h2 id=&#34;環境&#34;&gt;環境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ubuntu 20.04&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ docker -v
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Docker version 20.10.23, build &lt;span style=&#34;color:#ae81ff&#34;&gt;7155243&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ docker compose version
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Docker Compose version v2.15.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;原因&#34;&gt;原因&lt;/h2&gt;
&lt;p&gt;このエラーは、30個程度のDocker Networkを作成すると発生するようです。&lt;/p&gt;
&lt;p&gt;Docker Composeでは通常、プロジェクト1つあたり、1つのDocker Networkが作成されます（複雑なプロジェクトでは、2つ以上使用することがあるかもしれません）。
手元の環境では、Docker Composeのプロジェクトが27個稼働しており、28個目のプロジェクトを起動したときにエラーが発生しました。&lt;/p&gt;
&lt;p&gt;Docker Networkの一覧は、以下のコマンドで確認できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker network ls
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Docker NetworkのIPアドレスには、いわゆるプライベートIPアドレスの範囲が使用されます。&lt;/p&gt;
&lt;p&gt;プライベートIPアドレスの範囲は、以下のようになります（CIDR表記）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10.0.0.0/8&lt;/li&gt;
&lt;li&gt;172.16.0.0/12&lt;/li&gt;
&lt;li&gt;192.168.0.0/16&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;作成されたDocker Networkに割り当てられたIPレンジは&lt;code&gt;docker network inspect&lt;/code&gt;コマンドで確認できます。
以下の記事で紹介されているコマンドが便利です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>自宅ネットワークのbind9をdocker composeに移行した</title>
      <link>https://blog.aoirint.com/entry/2023/bind9_docker_compose/</link>
      <pubDate>Wed, 25 Jan 2023 03:40:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2023/bind9_docker_compose/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;自宅ネットワークのbind9をdocker compose化したので記録。&lt;/li&gt;
&lt;li&gt;これまでホストで直接動かしていたけれど、OOM Killerか何かに3,4日に1度くらいでキルされていたので不便だった&lt;/li&gt;
&lt;li&gt;これでdocker composeのrestart機構で再起動がかかるようになる
&lt;ul&gt;
&lt;li&gt;systemdのrestart機構ワカラナイ&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dockerイメージ: &lt;a href=&#34;https://hub.docker.com/r/ubuntu/bind9&#34;&gt;https://hub.docker.com/r/ubuntu/bind9&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;コード&#34;&gt;コード&lt;/h2&gt;
&lt;h3 id=&#34;docker-composeyml&#34;&gt;docker-compose.yml&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;bind9&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;ubuntu/bind9:9.18-22.04_beta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;restart&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;always&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;0.0.0.0:53:53/udp&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./volumes/bind_etc/named.conf.local:/etc/bind/named.conf.local:ro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./volumes/bind_etc/named.conf.options:/etc/bind/named.conf.options:ro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./volumes/bind_var_cache:/var/cache/bind:rw&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./volumes/bind_var_lib:/var/lib/bind:rw&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;TZ=Asia/Tokyo&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;BIND9_USER=bind&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# UID=101&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;volumesbind_etcnamedconfoptions&#34;&gt;volumes/bind_etc/named.conf.options&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-named&#34; data-lang=&#34;named&#34;&gt;acl my-network {
  10.0.0.0/8;
  172.16.0.0/12;
  192.168.0.0/16;
  localhost;
};

options {
  directory &amp;#34;/var/cache/bind&amp;#34;;
  response-policy { zone &amp;#34;rpz&amp;#34;; };

  allow-query { any; };
  allow-recursion { my-network; };
  allow-query-cache { my-network; };

  dnssec-validation auto;

  forward only;
  forwarders {
    # ISP DNS1;
    # ISP DNS2;
    8.8.8.8;
    8.8.4.4;
    1.1.1.1;
  };
}
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;volumesbind_etcnamedconflocal&#34;&gt;volumes/bind_etc/named.conf.local&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-named&#34; data-lang=&#34;named&#34;&gt;zone &amp;#34;example.com&amp;#34; IN {
  type master;
  file &amp;#34;example.com.zone&amp;#34;;
};

zone &amp;#34;rpz&amp;#34; {
  type master;
  file &amp;#34;rpz.zone&amp;#34;;
  allow-query { none; };
};
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;volumesbind_var_cacheexamplecomzone&#34;&gt;volumes/bind_var_cache/example.com.zone&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-zone&#34; data-lang=&#34;zone&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$ORIGIN&lt;/span&gt; example.com.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$TTL&lt;/span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;3600&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@&lt;/span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;IN&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;SOA&lt;/span&gt;   ns.example.com.   &lt;span style=&#34;color:#a6e22e&#34;&gt;root.example.com&lt;/span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;2023012500&lt;/span&gt;      &lt;span style=&#34;color:#75715e&#34;&gt;; Serial&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;3600&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;; Refresh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;900&lt;/span&gt;             &lt;span style=&#34;color:#75715e&#34;&gt;; Retry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;604800&lt;/span&gt;          &lt;span style=&#34;color:#75715e&#34;&gt;; Expire&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;86400&lt;/span&gt;           &lt;span style=&#34;color:#75715e&#34;&gt;; Minimum&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;IN&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;NS&lt;/span&gt;    ns.example.com.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ns&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;IN&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;A&lt;/span&gt;     &lt;span style=&#34;color:#ae81ff&#34;&gt;127.0.0.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@&lt;/span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;IN&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;A&lt;/span&gt;     &lt;span style=&#34;color:#ae81ff&#34;&gt;127.0.0.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;sub&lt;/span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;IN&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;CNAME&lt;/span&gt; example.com.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;volumesbind_var_cacherpzzone&#34;&gt;volumes/bind_var_cache/rpz.zone&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-zone&#34; data-lang=&#34;zone&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$TTL&lt;/span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;3600&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@&lt;/span&gt;       &lt;span style=&#34;color:#66d9ef&#34;&gt;IN&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;SOA&lt;/span&gt;   localhost. root.localhost. (
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;2023012500&lt;/span&gt;      &lt;span style=&#34;color:#75715e&#34;&gt;; Serial&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;3600&lt;/span&gt;            &lt;span style=&#34;color:#75715e&#34;&gt;; Refresh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;900&lt;/span&gt;             &lt;span style=&#34;color:#75715e&#34;&gt;; Retry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;604800&lt;/span&gt;          &lt;span style=&#34;color:#75715e&#34;&gt;; Expire&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;86400&lt;/span&gt;           &lt;span style=&#34;color:#75715e&#34;&gt;; Minimum&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;IN&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;NS&lt;/span&gt;    localhost.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;; block malicious domains&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;malicious.example.com&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;A&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0.0.0.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;既知の問題&#34;&gt;既知の問題&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;libvirt dnsmasqが53/udpを先に取ると動かなくなりそう？&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ホストのbind9をアンインストール&#34;&gt;ホストのbind9をアンインストール&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt purge bind9
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo rm -rf /var/cache/bind/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>OpenVPNとnginxをOpenVPNのPort Share機能で共存させる</title>
      <link>https://blog.aoirint.com/entry/2022/openvpn_nginx_port_share/</link>
      <pubDate>Wed, 19 Oct 2022 00:50:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2022/openvpn_nginx_port_share/</guid>
      <description>&lt;p&gt;TCP 443番ポートは、一般にHTTPSの通信に使われ、ファイアウォールやプロキシによる制限の強いネットワークでも通過できることが多い。
一方、WebサーバをホストしたいIPアドレスと、443番ポートでVPNをホストしたいIPアドレスが同一の場合、443番ポートの取り合い（ポート番号の重複）が起きてしまう。&lt;/p&gt;
&lt;p&gt;OpenVPNには、OpenVPNが待ち受けるポートへの通信が、
VPNのパケットか、VPN以外のパケット（例えばnginxへのHTTPS通信）かを自動で判別して、
VPN以外のパケットを中継してくれるPort Share機能がある。&lt;/p&gt;
&lt;p&gt;つまり、OpenVPNが443番（&lt;code&gt;0.0.0.0:443&lt;/code&gt;）で待ち受け、
nginxは他の適当なポート（例えば&lt;code&gt;127.0.0.1:4443&lt;/code&gt;）で待ち受けるようにして、
Port Share機能の転送先をnginxに設定すれば、443番で待ち受けるOpenVPNと、本来443番で待ち受けたいnginxとが共存できる。&lt;/p&gt;
&lt;p&gt;UbuntuサーバへのOpenVPNの導入は、以下のDigitalOceanの記事が有用なので、参照されたい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenVPNで使用するサーバー証明書・クライアント証明書を発行するCAサーバをセットアップする記事: &lt;a href=&#34;https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-a-certificate-authority-ca-on-ubuntu-20-04&#34;&gt;https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-a-certificate-authority-ca-on-ubuntu-20-04&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenVPNをセットアップする記事: &lt;a href=&#34;https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-an-openvpn-server-on-ubuntu-20-04-ja&#34;&gt;https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-an-openvpn-server-on-ubuntu-20-04-ja&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenVPNのインストールにあたっての重要な点として、
&lt;code&gt;ステップ7 — OpenVPNの設定&lt;/code&gt;の&lt;code&gt;（オプション）DNSの変更をプッシュして、VPNを介してすべてのトラフィックをリダイレクトする&lt;/code&gt;を実行した上で、
&lt;code&gt;ステップ9 — ファイアウォールの設定&lt;/code&gt;を手順通り実行することがある。
NAT下にあるなどの理由でufwの設定をしていなかったサーバーでも、新たにufwの設定をすることで、トラブルなくOpenVPNのインストールができる。
このステップを行わないと、VPN外へのパケットの転送が動作せず、VPN接続中のクライアントがインターネットに接続できない状況に陥る。&lt;/p&gt;
&lt;p&gt;また、&lt;code&gt;（オプション）ポートとプロトコルの調整&lt;/code&gt;で、待ち受けポートを443番、プロトコルをTCPにしておく。
OpenVPNの起動の際には、nginxとポート番号を取り合って起動に失敗しないように、nginxをあらかじめ停止し、ポート番号を書き換えておく。&lt;/p&gt;
&lt;h2 id=&#34;nginx-設定ファイル&#34;&gt;nginx 設定ファイル&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;/etc/nginx/sites-enabled/&lt;/code&gt;などにあるnginxの設定ファイルを書き換え、
4443番で待ち受けるようにする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;listen&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;4443&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;http2&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;ssl&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;大量にサイトをホストしている場合、コマンドやVSCodeなどでまとめて書き換えるとよい。&lt;/p&gt;
&lt;h2 id=&#34;etcopenvpnserverserverconf&#34;&gt;/etc/openvpn/server/server.conf&lt;/h2&gt;
&lt;p&gt;OpenVPNのサーバー設定ファイルに&lt;code&gt;port-share&lt;/code&gt;を追記する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-openvpn&#34; data-lang=&#34;openvpn&#34;&gt;port 443
port-share 127.0.0.1 4443

proto tcp
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;openvpnからnginxへのパケット転送の許可ufw&#34;&gt;OpenVPNからnginxへのパケット転送の許可（ufw）&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ufw allow from 10.8.0.0/24 to any port &lt;span style=&#34;color:#ae81ff&#34;&gt;4443&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;nginx-openvpnの再起動&#34;&gt;nginx, OpenVPNの再起動&lt;/h2&gt;
&lt;p&gt;nginxおよびOpenVPNを再起動し、443番ポート宛てのHTTPS通信（nginx宛て）、443番ポート宛てのVPN接続（OpenVPN宛て）が正常に動作することを確認する。&lt;/p&gt;</description>
    </item>
    <item>
      <title>自宅サーバのWebサービスをVPSで中継するようにした</title>
      <link>https://blog.aoirint.com/entry/2022/proxy_webservice_on_home_server_with_vps/</link>
      <pubDate>Thu, 07 Apr 2022 11:00:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2022/proxy_webservice_on_home_server_with_vps/</guid>
      <description>&lt;p&gt;これまで自宅サーバへの外部からの接続には、
数年前から自宅のグローバルIPアドレスにフリーのドメインを紐づけて使っていたのですが、
3月末に更新を忘れてこのドメインを失効させてしまいました。&lt;/p&gt;
&lt;p&gt;自宅サーバでは、主に個人用のWebサービスや身内用のゲームサーバが動いています。&lt;/p&gt;
&lt;p&gt;同じドメインを再取得するには追加の料金がかかりますし、（若干用途が規約的に怪しいこともあり）新しくドメインを取り直す気にもなれなかったので、
以前から契約していたVPSをTCP/UDPプロキシとして使ってみることにしました。&lt;/p&gt;
&lt;p&gt;この記事では、nginx.confのhttpディレクティブとstreamディレクティブそれぞれについて、拡張子でincludeを切り分けるようにする構成にしています。
基本的には、nginx.confに以下のように記述するイメージです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;http&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;include&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/nginx/conf.d/*.http&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;stream&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;include&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/nginx/conf.d/*.stream&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;関連ツイート
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://twitter.com/aoirint/status/1510309731642257408&#34;&gt;https://twitter.com/aoirint/status/1510309731642257408&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://twitter.com/aoirint/status/1511896279731040261&#34;&gt;https://twitter.com/aoirint/status/1511896279731040261&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;また、この記事の内容には関係ありませんが、envsubstでconfigファイルに環境変数を注入する、nginxのDocker Hub公式Dockerイメージのtemplate機能を使用しているため、
nginx設定ファイルの拡張子がtemplateになっています。&lt;/p&gt;
&lt;p&gt;上のツイートに関連して、&lt;code&gt;certbot --nginx&lt;/code&gt;で自動生成される&lt;code&gt;/etc/letsencrypt/options-ssl-nginx.conf&lt;/code&gt;を手動で&lt;code&gt;nginx.conf&lt;/code&gt;に統合しているので、
以下の設定ではコメントアウトされているincludeがあります。&lt;/p&gt;
&lt;h2 id=&#34;構成&#34;&gt;構成&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;自宅サーバ側：systemd + autosshによる自動SSH接続＆リモートポート転送&lt;/li&gt;
&lt;li&gt;VPS側：nginxによるHTTPリバースプロキシ・UDPプロキシ&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;自宅サーバ側&#34;&gt;自宅サーバ側&lt;/h2&gt;
&lt;h3 id=&#34;sshconfig&#34;&gt;~/.ssh/config&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-ssh&#34; data-lang=&#34;ssh&#34;&gt;Host vps*
    HostName VPS_IPADDR
    Port VPS_SSH_PORT
    ServerAliveInterval 10
    ServerAliveCountMax 5
    TCPKeepAlive yes
    IdentitiesOnly yes
    IdentityFile ~/.ssh/vps

Host vps-forwarding-homeserver
    # SERVICE1
    RemoteForward 127.0.0.1:VPS_SERVICE1_PORT 127.0.0.1:LOCAL_SERVICE1_PORT

    # SERVICE2
    RemoteForward 127.0.0.1:VPS_SERVICE2_PORT 127.0.0.1:LOCAL_SERVICE2_PORT
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;etcsystemdsystemautossh-vpsservice&#34;&gt;/etc/systemd/system/autossh-vps.service&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-systemd&#34; data-lang=&#34;systemd&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;[Unit]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;Description&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;AutoSSH VPS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;Type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;simple&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;Restart&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;always&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;User&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;Group&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;WorkingDirectory&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;/home/user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ExecStart&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;/usr/bin/autossh -N vps-forwarding-homeserver&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;[Install]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;WantedBy&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;multi-user.target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;vps側&#34;&gt;VPS側&lt;/h2&gt;
&lt;h3 id=&#34;httpリバースプロキシsshポート転送使用-myservicehttptemplate&#34;&gt;HTTPリバースプロキシ（SSHポート転送使用）: myservice.http.template&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;server_name&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;myservice.example.com&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;client_max_body_size&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;500M&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;add_header&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;Strict-Transport-Security&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;max-age=15552000&lt;/span&gt;; &lt;span style=&#34;color:#f92672&#34;&gt;includeSubDomains&lt;/span&gt;; &lt;span style=&#34;color:#f92672&#34;&gt;preload&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;location&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;#auth_basic &amp;#34;Auth required&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;#auth_basic_user_file /secrets/myservice.htpasswd;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_pass&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;http://127.0.0.1:VPS_MYSERVICE_PORT&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_redirect&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;off&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_set_header&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;Host&lt;/span&gt; $host;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_set_header&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;X-Real-IP&lt;/span&gt; $remote_addr;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_set_header&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;X-Forwarded-Host&lt;/span&gt; $host;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_set_header&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;X-Forwarded-Server&lt;/span&gt; $host;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_set_header&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;X-Forwarded-For&lt;/span&gt; $proxy_add_x_forwarded_for;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;send_timeout&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;3600s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_connect_timeout&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;3600s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_send_timeout&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;3600s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_read_timeout&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;3600s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;#proxy_max_temp_file_size 2048m;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;location&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/.well-known/acme-challenge/&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;root&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/letsencrypt-webroot&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;listen&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;443&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;ssl&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ssl_certificate&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/letsencrypt/live/myservice.example.com/fullchain.pem&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ssl_certificate_key&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/letsencrypt/live/myservice.example.com/privkey.pem&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# include /etc/letsencrypt/options-ssl-nginx.conf;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ssl_dhparam&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/letsencrypt/ssl-dhparams.pem&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;(&lt;/span&gt;$host = &lt;span style=&#34;color:#e6db74&#34;&gt;myservice.example.com)&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;301&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;https://&lt;/span&gt;$host$request_uri;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;server_name&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;myservice.example.com&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;listen&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;80&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;404&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;udpポート転送sshポート転送不使用-myserviceudpstreamtemplate&#34;&gt;UDPポート転送（SSHポート転送不使用）: myserviceudp.stream.template&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;listen&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;VPS_SERVICEUDP_PORT&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;udp&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;reuseport&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_pass&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;HOME_IPADDR:HOME_SERVICEUDP_PORT&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_connect_timeout&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;3600s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;proxy_timeout&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;3600s&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;#proxy_max_temp_file_size 2048m;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Ubuntu 20.04, ネットワーク設定変更時の認証を回避する</title>
      <link>https://blog.aoirint.com/entry/2021/ubuntu_disable_network_change_auth/</link>
      <pubDate>Mon, 29 Nov 2021 20:30:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2021/ubuntu_disable_network_change_auth/</guid>
      <description>&lt;p&gt;Ubuntu 20.04にアップデートしてから、ネットワーク設定の変更時（接続のON/OFFなど）に&lt;code&gt;System policy prevents control of network connections&lt;/code&gt;と表示され、認証を要求されるようになりました。&lt;/p&gt;
&lt;p&gt;ここまではまだいいのですが、認証が表示されるたびに数秒間デスクトップがハングする状態になっていて、ストレスでした。
Keyringのロックを解除するときも数秒間ハングするので、似た原因がありそうです。&lt;/p&gt;
&lt;p&gt;ひとまず、設定変更時の認証を要求されないようにして、ハングを防ぐことを試みました。結果として試みは成功し、ハングを回避できるようになりました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/534469/system-policy-prevents-control-of-network-connections&#34;&gt;https://unix.stackexchange.com/questions/534469/system-policy-prevents-control-of-network-connections&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://code.luasoftware.com/tutorials/linux/ubuntu-prompt-system-policy-prevents-modification-of-network-settings-for-all-users/&#34;&gt;https://code.luasoftware.com/tutorials/linux/ubuntu-prompt-system-policy-prevents-modification-of-network-settings-for-all-users/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;etcpolkit-1localauthority50-locald50-allow-network-managerpkla&#34;&gt;/etc/polkit-1/localauthority/50-local.d/50-allow-network-manager.pkla&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-pkla&#34; data-lang=&#34;pkla&#34;&gt;[Allow Network Manager all Users]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=no
ResultInactive=no
ResultActive=yes
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl restart network-manager.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>WebDAV in Docker</title>
      <link>https://blog.aoirint.com/entry/2021/webdav_docker/</link>
      <pubDate>Sun, 22 Aug 2021 11:15:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2021/webdav_docker/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/aoirint/webdav-docker&#34;&gt;https://github.com/aoirint/webdav-docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://hub.docker.com/r/aoirint/webdav&#34;&gt;https://hub.docker.com/r/aoirint/webdav&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下のリポジトリをforkし、Windows 10のExplorerクライアントに対応させたDockerイメージ。
Apache Web ServerのDAV機能でWebDAVサーバを立てる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/BytemarkHosting/docker-webdav&#34;&gt;https://github.com/BytemarkHosting/docker-webdav&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;docker-composeyml&#34;&gt;docker-compose.yml&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;version&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;3.9&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;webdav&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;aoirint/webdav:2.4-20210822c&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;restart&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;always&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;${DAV_PORT:-127.0.0.1:8000}:80&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;LOCATION&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;/webdav&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;ANONYMOUS_METHODS&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;OPTIONS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;AUTH_TYPE&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Basic&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;USERNAME&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${DAV_USERNAME:-user}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;PASSWORD&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${DAV_PASSWORD:-password}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#75715e&#34;&gt;# SKIP_CHOWN: 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;./dav:/var/lib/dav&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上の設定で、&lt;code&gt;dav://127.0.0.1:8000/webdav&lt;/code&gt;にWebDAVサーバが立つ。&lt;/p&gt;
&lt;p&gt;データは&lt;code&gt;./dav/data&lt;/code&gt;に格納される。&lt;/p&gt;
&lt;h2 id=&#34;optional-etcfstab&#34;&gt;Optional: /etc/fstab&lt;/h2&gt;
&lt;p&gt;シンボリックリンクは動作しないので、&lt;code&gt;bindfs&lt;/code&gt;を使う。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install bindfs fuse-utils
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-fstab&#34; data-lang=&#34;fstab&#34;&gt;/src/path /dest/dav/data/path fuse.bindfs rw,user,uid=YOURUSER 0 0
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.netfort.gr.jp/~tosihisa/notebook/doku.php/bindfs&#34;&gt;https://www.netfort.gr.jp/~tosihisa/notebook/doku.php/bindfs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>SmokePing in Docker</title>
      <link>https://blog.aoirint.com/entry/2021/smokeping_docker/</link>
      <pubDate>Sun, 22 Aug 2021 09:45:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2021/smokeping_docker/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://hub.docker.com/r/dperson/smokeping&#34;&gt;https://hub.docker.com/r/dperson/smokeping&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;copy-configs&#34;&gt;Copy Configs&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run --name smokeping --rm -d dperson/smokeping:latest
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker cp smokeping:/etc/smokeping ./config
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker rm -f smokeping
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;docker-composeyml&#34;&gt;docker-compose.yml&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;version&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;3.9&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;smokeping&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;dperson/smokeping:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;restart&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;always&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{SMOKEPING_PORT:-127.0.0.1:8000}:80&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;./config:/etc/smokeping:ro&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;./data:/var/lib/smokeping&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;TZ&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Asia/Tokyo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;configconfigdtargets&#34;&gt;config/config.d/Targets&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-smokeping&#34; data-lang=&#34;smokeping&#34;&gt;*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
         Here you will learn all about the latency of our network.

+ Home

menu = Home
title = Home Network
#parents = owner:/Test/James location:/

++ Router

menu = Router (192.168.0.1)
title = Router (192.168.0.1)
host = 192.168.0.1

++ MyServer

menu = MyServer (192.168.0.2)
title = MyServer (192.168.0.2)
host = 192.168.0.2
#alerts = someloss
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>透過プロキシ（macOS, go-transproxy）</title>
      <link>https://blog.aoirint.com/entry/2021/transproxy_macos/</link>
      <pubDate>Mon, 21 Jun 2021 18:40:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2021/transproxy_macos/</guid>
      <description>&lt;h2 id=&#34;環境変数&#34;&gt;環境変数&lt;/h2&gt;
&lt;p&gt;シェル起動時にネットワーク設定からプロキシ設定を環境変数に読み出すようにしている場合、GUIで設定すればOK。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export HTTP_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://proxy.example.com:8080/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export HTTPS_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://proxy.example.com:8080/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export NO_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;localhost,127.0.0.0/8,::1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;NO_PROXYには必ずlocalhost/ローカルループバックアドレスを設定しておくこと（無限ループする）。&lt;/p&gt;
&lt;h2 id=&#34;ビルド&#34;&gt;ビルド&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/wadahiro/go-transproxy&#34;&gt;https://github.com/wadahiro/go-transproxy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/wadahiro/go-transproxy.git
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd go-transproxy/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls go-transproxy/bin/transproxy
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# check network device name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ifconfig
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;transproxypfconf&#34;&gt;~/transproxy/pf.conf&lt;/h2&gt;
&lt;p&gt;MacBookの無線LANカード：&lt;code&gt;en0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Mac miniなどの場合はNIC名が異なる場合があるので注意。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-pf&#34; data-lang=&#34;pf&#34;&gt;Packets = &amp;#34;proto tcp from en0 to {!192.168.0.0/16}&amp;#34;
rdr pass log on lo0 $Packets port 80 -&amp;gt; 127.0.0.1 port 3129
rdr pass log on lo0 $Packets port 443 -&amp;gt; 127.0.0.1 port 3130
pass out on en0 route-to lo0 inet $Packets port {80, 443} keep state
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;有効化&#34;&gt;有効化&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo pfctl -ef ~/transproxy/pf.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;transproxy -disable-iptables
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;無効化&#34;&gt;無効化&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# stop transproxy process (Ctrl+C)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# reset pf configs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo pfctl -df /etc/pf.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/informationsea/items/094146d0a811f3edc96b&#34;&gt;Macでプロキシとの戦いに疲れたので、透過型プロキシを導入してみた - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>透過プロキシ（Ubuntu, go-transproxy）</title>
      <link>https://blog.aoirint.com/entry/2021/transproxy_ubuntu/</link>
      <pubDate>Mon, 21 Jun 2021 18:10:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2021/transproxy_ubuntu/</guid>
      <description>&lt;h2 id=&#34;etcsudoers&#34;&gt;/etc/sudoers&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-sudoers&#34; data-lang=&#34;sudoers&#34;&gt;Defaults        env_keep+=&amp;#34;HTTP_PROXY&amp;#34;
Defaults        env_keep+=&amp;#34;HTTPS_PROXY&amp;#34;
Defaults        env_keep+=&amp;#34;NO_PROXY&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;環境変数&#34;&gt;環境変数&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export HTTP_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://proxy.example.com:8080/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export HTTPS_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://proxy.example.com:8080/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export NO_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;localhost,127.0.0.0/8,::1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;NO_PROXYには必ずlocalhost/ローカルループバックアドレスを設定しておくこと（無限ループする）。&lt;/p&gt;
&lt;p&gt;デスクトップの場合はGUI設定でOK。&lt;/p&gt;
&lt;h2 id=&#34;usrlocalbintransproxy&#34;&gt;/usr/local/bin/transproxy&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/wadahiro/go-transproxy&#34;&gt;https://github.com/wadahiro/go-transproxy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;usrlocalbintransproxy-start&#34;&gt;/usr/local/bin/transproxy-start&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set -eu
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# iptables -t nat -I OUTPUT -p tcp --dport 53 -j REDIRECT --to-ports 3131&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# iptables -t nat -I OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 3131&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables -t nat -I OUTPUT -p tcp --dport &lt;span style=&#34;color:#ae81ff&#34;&gt;80&lt;/span&gt; -j REDIRECT --to-ports &lt;span style=&#34;color:#ae81ff&#34;&gt;3129&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables -t nat -I OUTPUT -p tcp --dport &lt;span style=&#34;color:#ae81ff&#34;&gt;443&lt;/span&gt; -j REDIRECT --to-ports &lt;span style=&#34;color:#ae81ff&#34;&gt;3130&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;transproxy -disable-iptables &lt;span style=&#34;color:#75715e&#34;&gt;# -dns-over-https-enabled&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;usrlocalbintransproxy-stop&#34;&gt;/usr/local/bin/transproxy-stop&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set -eu
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# iptables -t nat -D OUTPUT -p tcp --dport 53 -j REDIRECT --to-ports 3131&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# iptables -t nat -D OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 3131&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables -t nat -D OUTPUT -p tcp --dport &lt;span style=&#34;color:#ae81ff&#34;&gt;443&lt;/span&gt; -j REDIRECT --to-ports &lt;span style=&#34;color:#ae81ff&#34;&gt;3130&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables -t nat -D OUTPUT -p tcp --dport &lt;span style=&#34;color:#ae81ff&#34;&gt;80&lt;/span&gt; -j REDIRECT --to-ports &lt;span style=&#34;color:#ae81ff&#34;&gt;3129&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;iptablesのルールを書き換えるため、実行時にはroot権限が必要。&lt;/p&gt;</description>
    </item>
    <item>
      <title>bind9</title>
      <link>https://blog.aoirint.com/entry/2021/bind9/</link>
      <pubDate>Wed, 09 Jun 2021 01:30:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2021/bind9/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server$ sudo apt install bind9
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;使用中のdnsサーバの確認&#34;&gt;使用中のDNSサーバの確認&lt;/h2&gt;
&lt;p&gt;クライアントに設定されているDNSサーバは&lt;code&gt;nmcli&lt;/code&gt;コマンドで確認できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ nmcli device show | grep DNS
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IP4.DNS&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;1&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;:                             8.8.8.8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IP4.DNS&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;2&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;:                             8.8.4.4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IP4.DNS&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;3&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;:                             1.1.1.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://askubuntu.com/questions/152593/command-line-to-list-dns-servers-used-by-my-system&#34;&gt;Command-line to list DNS servers used by my system - Ask Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;用語&#34;&gt;用語&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://cos.linux-dvr.biz/archives/category/bind-dns%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89&#34;&gt;BIND DNSサーバー構築 | CentOSサーバー構築入門&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;コンテンツサーバ権威サーバ&#34;&gt;コンテンツサーバ（権威サーバ）&lt;/h3&gt;
&lt;p&gt;あるゾーン（DNSにおける名前の管理単位）に関する名前解決要求（非再帰問い合わせ）を受け取り、自身が管理するゾーンならば名前解決結果を、委任情報を持つゾーンならば委任先の権威サーバ情報を応答する。&lt;/p&gt;
&lt;p&gt;ルートゾーン（FQDN: &lt;code&gt;.&lt;/code&gt;）を管理するルートサーバは、TLD（例えば &lt;code&gt;jp.&lt;/code&gt;）の権威サーバへの委任情報を持つ。&lt;/p&gt;
&lt;p&gt;ゾーン情報において、NSレコードにより指定される。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://jprs.jp/glossary/index.php?ID=0155&#34;&gt;JPRS用語辞典｜ルートゾーン&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://jprs.jp/glossary/index.php?ID=0145&#34;&gt;JPRS用語辞典｜権威サーバー（権威DNSサーバー）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://jprs.jp/glossary/index.php?ID=0157&#34;&gt;JPRS用語辞典｜ネームサーバー（DNSサーバー）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;キャッシュサーバフルサービスリゾルバ&#34;&gt;キャッシュサーバ（フルサービスリゾルバ）&lt;/h3&gt;
&lt;p&gt;クライアントから名前解決要求（再帰問い合わせ）を受け取り、
コンテンツサーバへ反復的に名前解決要求（反復問い合わせ）を送ることで任意のドメイン名の名前解決を行う。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://jprs.jp/glossary/index.php?ID=0158&#34;&gt;JPRS用語辞典｜フルサービスリゾルバー（キャッシュDNSサーバー）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例えば&lt;code&gt;hoge.example.jp.&lt;/code&gt;というドメインの名前解決要求を受け取ったとき、
ルートサーバ&lt;code&gt;.&lt;/code&gt;への非再帰問い合わせにより&lt;code&gt;jp.&lt;/code&gt;権威サーバへの委任情報を取得する。
&lt;code&gt;jp.&lt;/code&gt;権威サーバへの非再帰問い合わせにより&lt;code&gt;example.jp.&lt;/code&gt;権威サーバへの委任情報を取得する。
&lt;code&gt;example.jp.&lt;/code&gt;権威サーバへの非再帰問い合わせにより&lt;code&gt;hoge.example.jp.&lt;/code&gt;のIPアドレスを取得する、のような流れで反復的に問い合わせを行うことで&lt;code&gt;hoge.example.jp.&lt;/code&gt;の名前解決を行う。&lt;/p&gt;
&lt;p&gt;ISPの提供するDNSサーバや会社などの組織内DNSサーバ、GoogleやCloudflareなどが提供するパブリックDNSがある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://ascii.jp/elem/000/000/463/463076/&#34;&gt;ASCII.jp：DNSによる名前解決の仕組みを理解しよう (1/2)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;回送&#34;&gt;回送&lt;/h3&gt;
&lt;p&gt;プロキシのように、受け取った名前解決要求を他のDNSサーバに送り、
応答を返す。&lt;/p&gt;
&lt;h2 id=&#34;etcbindnamedconfoptions&#34;&gt;/etc/bind/named.conf.options&lt;/h2&gt;
&lt;p&gt;自身が管理していない情報（ゾーン、委任情報）に関する問い合わせについて、
他のDNSサーバ（フルサービスリゾルバ）に問い合わせを回送するように設定する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.atmarkit.co.jp/ait/articles/1510/28/news013.html&#34;&gt;「再帰問い合わせ」と「非再帰問い合わせ」の違いを教えてください：DNS Tips - ＠IT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://cos.linux-dvr.biz/archives/category/bind-dns%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89&#34;&gt;BIND DNSサーバー構築 | CentOSサーバー構築入門&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://ddns.blog.jp/archives/13568266.html&#34;&gt;フォワード（回送） : お父さんのためのDNS講座&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;デフォルト設定ファイル&#34;&gt;デフォルト設定ファイル&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bind&#34; data-lang=&#34;bind&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;options&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;directory&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#34;/var/cache/bind&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;If&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;there&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;is&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;firewall&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;between&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;you&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;nameservers&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;you&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;want&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;to&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;talk&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;to,&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;you&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;may&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;need&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;to&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;fix&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;the&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;firewall&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;to&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;allow&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;multiple&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;ports&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;to&lt;/span&gt; talk.  &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;See&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;http://&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;www.kb.cert.org&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/vuls/id/&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;800113&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;If&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;your&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;ISP&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;provided&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;one&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;or&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;more&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;IP&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;addresses&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;stable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;nameservers,&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;you&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;probably&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;want&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;to&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;use&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;them&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;as&lt;/span&gt; forwarders.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;Uncomment&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;the&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;following&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;block,&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;insert&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;the&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;addresses&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;replacing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;the&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;all-&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#39;s&lt;/span&gt; placeholder.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;forwarders&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt;      &lt;span style=&#34;color:#ae81ff&#34;&gt;0.0.0.0&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//========================================================================&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;If&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;BIND&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;logs&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;messages&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;about&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;the&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;root&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;key&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;being&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;expired,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;you&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;will&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;need&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;to&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;update&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;your&lt;/span&gt; keys.  &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;See&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;https://&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;www.isc.org&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/bind-keys&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//========================================================================&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;dnssec-validation&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;auto&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;auth-nxdomain&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;no&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;    # conform to RFC1035&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;listen-on-v6&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;any&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;; };&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;変更点&#34;&gt;変更点&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bind&#34; data-lang=&#34;bind&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;forwarders&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;8.8.8.8&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;8.8.4.4&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;1.1.1.1&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.isoroot.jp/blog/2929/&#34;&gt;初歩から解説！BINDでシンプルDNSサーバー構築【構築編】｜ 開発者ブログ ｜ 株式会社アイソルート&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;確認&#34;&gt;確認&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server$ systemctl restart bind9.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;client$ dig @192.168.x.x aoirint.com
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;;; ANSWER SECTION:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aoirint.com.  &lt;span style=&#34;color:#ae81ff&#34;&gt;3600&lt;/span&gt; IN A 185.199.108.153
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aoirint.com.  &lt;span style=&#34;color:#ae81ff&#34;&gt;3600&lt;/span&gt; IN A 185.199.111.153
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aoirint.com.  &lt;span style=&#34;color:#ae81ff&#34;&gt;3600&lt;/span&gt; IN A 185.199.109.153
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aoirint.com.  &lt;span style=&#34;color:#ae81ff&#34;&gt;3600&lt;/span&gt; IN A 185.199.110.153
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/hana_shin/items/e99f64a01f2632b7a719&#34;&gt;digコマンドの使い方 - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;etcbindnamedconflocal&#34;&gt;/etc/bind/named.conf.local&lt;/h2&gt;
&lt;p&gt;DNSサーバの管理するゾーンの名前と対応する設定ファイル（ゾーンファイル）を設定する。&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSH Port Forwardingを使ってNAT間で通信するPort Proxy Server in Docker</title>
      <link>https://blog.aoirint.com/entry/2021/ssh_proxy_server_docker/</link>
      <pubDate>Sun, 21 Mar 2021 03:32:29 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2021/ssh_proxy_server_docker/</guid>
      <description>&lt;h2 id=&#34;sshポートフォワーディング踏み台による中継接続&#34;&gt;SSHポートフォワーディング：踏み台による中継接続&lt;/h2&gt;
&lt;p&gt;SSHポートフォワーディングには、
ローカルポートフォワーディング、
リモートポートフォワーディングの2種類があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/mechamogera/items/b1bb9130273deb9426f5&#34;&gt;sshポートフォワーディング - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ローカルポートフォワーディングでは、
SSHサーバ側から見えるネットワークポートを
SSHクライアント側に転送することができます。
例えば、ファイアウォール（NAT）に守られたネットワーク（ネットワークA）内にあるWebサーバ（ホストX）に
外部ネットワーク（ネットワークB）にあるクライアント（ホストY）から接続したいとき、
踏み台となる、ネットワークBから接続可能なSSHサーバ（ホストZ）がネットワークA内にあれば、
ホストYがホストZにSSH接続することで、
ホストXのWebサーバのネットワークポートに、
ホストYの指定したポートから接続できるようになります
（「ホスト」は「各ネットワークに接続した、NICに割り当てられたIPアドレス」に対応）。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user@hostY.networkB.example: $ ssh user@hostZ.networkA.example -L &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;127.0.0.1:10080:hostX.networkA.example:80&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user@hostY.networkB.example: $ wget http://127.0.0.1:10080/index.html
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;I am &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;hostX.networkA.example:80&amp;#34;&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;リモートポートフォワーディングでは、
SSHクライアント側から見えるネットワークポートを
SSHサーバ側に転送することができます。
先の例でいうと、ホストXがネットワークBに接続していて、
ファイアウォール（NAT）によってネットワークAにあるホストZから接続できないとき、
ホストYがホストZにSSH接続することで、ホストZからホストXに接続できるようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user@hostY.networkB.example: $ ssh user@hostZ.networkA.example -R &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;127.0.0.1:10080:hostX.networkB.example:80&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user@hostZ.networkA.example: $ wget http://127.0.0.1:10080/index.html
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;I am &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;hostX.networkB.example:80&amp;#34;&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この方法は、ネットワーク内のあるホストにSSH接続ができる環境さえあれば、
VPNや他のTCPプロキシをセットアップするより簡単に隠されたネットワークにアクセスすることができるように思います。&lt;/p&gt;
&lt;h2 id=&#34;ポートプロキシサーバ2種類のsshポートフォワーディングの組み合わせ&#34;&gt;ポートプロキシサーバ：2種類のSSHポートフォワーディングの組み合わせ&lt;/h2&gt;
&lt;p&gt;ここで、別の構成のネットワークについても考えてみます。
新しくネットワークCを導入して、
ホストXはNAT内のネットワークC（&lt;code&gt;hostX.networkC.example&lt;/code&gt;）、
ホストYはNAT内のネットワークB（&lt;code&gt;hostY.networkB.example&lt;/code&gt;）、
ホストZはネットワークB、Cからともに接続可能なネットワークA（&lt;code&gt;hostZ.networkA.example&lt;/code&gt;）
という構成を考えてみます。&lt;/p&gt;
&lt;p&gt;この構成で、ホストYからホストXに接続可能な環境を作るには、次のような手順が考えられます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ホストXからホストZにSSH接続し、リモートポートフォワーディングによってホストZ上の&amp;quot;ポートQ&amp;quot;をホストX上の&amp;quot;ポートP&amp;quot;に転送する&lt;/li&gt;
&lt;li&gt;ホストYからホストZにSSH接続し、ローカルポートフォワーディングによってホストY上の&amp;quot;ポートR&amp;quot;をホストZ上の&amp;quot;ポートQ&amp;quot;に転送する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これにより、ホストYは、自身のポートRを使って、ホストXのポートPに接続することができます。
もしホストXに物理的にアクセスできない環境でも、
あらかじめホストXをホストZに常時接続するように設定しておけば、
その接続（ポートQからポートPへの転送）が生きている限り、好きなタイミングでホストYからホストXに接続（ポートRからポートQへの転送、すなわちポートRからポートPへの転送）することができます。&lt;/p&gt;
&lt;h2 id=&#34;ssh-port-forwardingを使ったport-proxy-server-in-docker&#34;&gt;SSH Port Forwardingを使ったPort Proxy Server in Docker&lt;/h2&gt;
&lt;p&gt;前項のポートプロキシサーバの問題として、次の3つを考えました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu プロキシ設定</title>
      <link>https://blog.aoirint.com/entry/2020/ubuntu_proxy/</link>
      <pubDate>Fri, 02 Oct 2020 15:40:00 +0900</pubDate>
      <guid>https://blog.aoirint.com/entry/2020/ubuntu_proxy/</guid>
      <description>&lt;h2 id=&#34;user-desktop-settings--network--network-proxy&#34;&gt;User (Desktop): Settings &amp;gt; Network &amp;gt; Network Proxy&lt;/h2&gt;
&lt;p&gt;Settings &amp;gt; Network &amp;gt; Network Proxy &amp;gt; Manualに設定する。
自動的に環境変数HTTP_PROXY, HTTPS_PROXYにスキームが追加された状態で設定される。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTTP Proxy: &lt;code&gt;proxy&lt;/code&gt; &lt;code&gt;port&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;HTTPS Proxy: &lt;code&gt;proxy&lt;/code&gt; &lt;code&gt;port&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Ignore Hosts: &lt;code&gt;localhost, 127.0.0.0/8, ::1&lt;/code&gt;（プライベートネットワーク・組織内ネットワークのIPアドレス範囲またはドメインも追加する）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;curlやwget、pipなど主要コマンドは
注意点として、別ユーザとしてコマンドを実行すると環境変数が引き継がれない。
例えばsudo curlしたときにプロキシに接続しにいかない。&lt;/p&gt;
&lt;h2 id=&#34;etcsudoers&#34;&gt;/etc/sudoers&lt;/h2&gt;
&lt;p&gt;sudoでコマンドを実行したとき、実行時シェルに設定されている環境変数を引き継ぐようにする。
sudoersは書き込み禁止になっているためvisudoで編集する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# run as root&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;visudo -f /etc/sudoers
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-sudoers&#34; data-lang=&#34;sudoers&#34;&gt;Defaults env_keep+=&amp;#34;HTTP_PROXY&amp;#34;
Defaults env_keep+=&amp;#34;HTTPS_PROXY&amp;#34;
Defaults env_keep+=&amp;#34;NO_PROXY&amp;#34;
Defaults env_keep+=&amp;#34;EDITOR&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;etcenvironment&#34;&gt;/etc/environment&lt;/h2&gt;
&lt;p&gt;システム全体の環境変数として設定される。影響範囲が大きいので注意。
デスクトップユーザではSettings側の設定（Disabledなら設定されない）が優先されるようだった。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;HTTP_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://proxy:port
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;HTTPS_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://proxy:port
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NO_PROXY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;localhost, 127.0.0.0/8, ::1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;apt-etcaptaptconf&#34;&gt;apt: /etc/apt/apt.conf&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-apt&#34; data-lang=&#34;apt&#34;&gt;Acquire::http::proxy &amp;#34;http://proxy:port&amp;#34;;                             
Acquire::https::proxy &amp;#34;http://proxy:port&amp;#34;;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;snap-systemctl-edit-snapdservice&#34;&gt;Snap: systemctl edit snapd.service&lt;/h2&gt;
&lt;p&gt;/etc/systemd/system/snapd.service.d/override.confにsystemdの設定ファイルを作成する。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
