🧰

misskey用のフォワードプロキシをsquid+tailscaleで建てる

2024/12/28に公開

おことわり

  • これは個人的なメモであり、参考程度に見てください

なぜ建てたのか?

家の回線の相性でdeliverが謎にabortしてしまう現象が発生していたのですが、フォワードプロキシで安定してるところに出口を作ればいいって話を聞いたので今回お試しでやってます。

前提

  • 両方のマシンでtailscaleが入ってる
  • 1core/1gbのマシン←512mbのマシンでも動きそう
  • ubuntu server 22.04

firewall

tailscale以外からのアクセスを遮断しておかないとフリーなプロキシとして悪用されてしまうので注意してください。

sudo ufw allow in on tailscale0 from 100.64.0.0/10 to any port 3128 proto tcp

squid

squidはsudo apt install -y squidで入ります。

デフォルトのsquidのファイルは色々書いてあって読解が大変なので新しいファイルにコンフィグを書いていきます。

sudo mv /etc/squid/squid.conf ./squid.conf.backup
sudo vi /etc/squid/squid.conf

squid.conf

acl localnet src 100.64.0.0/10
acl tailscale_network src 100.64.0.0/10
acl tailscale_dst dst 100.64.0.0/10
http_access allow tailscale_network
http_access allow tailscale_dst

acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 443
acl CONNECT method CONNECT

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost manager
http_access deny manager

acl localdst dst 0.0.0.0
acl localdst dst 0.0.0.1-0.255.255.255
acl localdst dst 10.0.0.0/8
acl localdst dst 100.64.0.0/10
acl localdst dst 169.254.0.0/16
acl localdst dst 172.16.0.0/12
acl localdst dst 192.168.0.0/16
acl localdst dst fc00::/7
acl localdst dst fe80::/10
http_access deny localdst

include /etc/squid/conf.d/*

http_access allow localnet
http_access allow localhost

http_access deny all

workers 4 

http_port 3128

コンフィグを書いたらsudo systemctl enable --now squidで起動

sudo systemctl status squidを叩いて

● squid.service - Squid Web Proxy Server
     Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; preset: enabled)
     Active: active (running) since

になってればok

curl ipinfo.io -x http://tailscaleのip:3128/
を叩いてipが変わってれば正しく接続できてます。

misskeyでフォワードプロキシを使う

misskeyの.config/default.ymlを開き、

# Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128

という部分があるのでproxyのコメントアウトを外す。

http://tailscaleのip:3128/って感じで置き換えて、misskeyを再起動してください。
正常にdeliverが動いていれば完了です。

なぜ建てたのか?

家の回線の相性でdeliverが謎にabortしてしまう現象が発生していたのですが、フォワードプロキシで安定してるところに出口を作ればいいって話を聞いたので今回お試しでやってます。

Discussion