やりたいこと
検閲回避のために
知的好奇心から、Shadowsocksサーバーを立ち上げて外部からアクセスしてみたい。
ファイヤーウォール(ufw)の設定方法は、別の記事で解説済みなのでそっち見てみてください。
ポート開放の仕方は各自の環境によって変わってくるので、頑張ってください。
環境
- 22.04.3 LTS (Jammy Jellyfish) 64bit
- RaspberryPi 4 ModelB
目次
Shadowsocks-libevのインストール
Debian系なら公式リポジトリで提供されているのでaptでインストールするだけ。
詳しくは公式ドキュメントへ
sudo apt update && sudo apt install shadowsocks-libev
config.jsonの編集
/etc/shadowsocks-libev/config.json
に設定ファイルがあります。
パスワードとリッスンポートは変更しておきましょう。
一応PWはランダム生成ですが、念のため。
また外部からアクセスする場合は、IPアドレスを127.0.0.1
から0.0.0.0
に変更しておきましょう。
methodはchacha20-ietf-poly1305
が推奨らしいので変更不要ですが、エラーが起きたら公式ドキュメントを見ながら編集してください。
{ "server":["::1", "0.0.0.0"], "mode":"tcp_and_udp", "server_port":ポート番号, "local_port":1080, "password":"パスワード", "timeout":86400, "method":"chacha20-ietf-poly1305" }
Shadownsocksの起動と自動起動
Shadownsocksサーバーの起動と、OS起動時に自動的に起動するようにしていきます。
sudo systemctl restart shadowsocks-libev.service
sudo systemctl enable shadowsocks-libev.service
これでサーバーの起動と自動起動の設定ができます。
systemctl status shadowsocks-libev.service
を実行して、Active: active (running)
になっていたら問題ありません。
おまけ
crontabを使ってDDNS NowにIPアドレスを自動的に通知する。
DDNS Nowを使ってSSHやShadowsocksサーバーにアクセスできるようにしたいので、1分ごとにIPアドレスを通知するようにする。
crontab -e
を実行して以下を末尾に追記する。
# IPv4 0-59 * * * * wget -O DDNSNow_update.log "https://f5.si/update.php?domain=ユーザーID&password=パスワードかAPIトークン" #IPv6 0-59 * * * * wget -O DDNSNow_update.log "https://v6.f5.si/update.php?domain=ユーザーID&password=パスワードかAPIトークン"
ちなみに、ユーザーIDは.f5.si
を抜いた文字列のこと。