使用 Docker 一個指令安裝 v2ray + MTProto 到 Ubuntu 上

最近因為某種原因,開始研究了使用 Docker 來架設各種服務。由於之前沒怎麼接觸過 Docker,所以踩了蠻多坑。

而其中一個最近自己剛弄好的服務就是 v2ray + MTProto,其實我 VPN 應該是不需要用到 v2ray 的,因為有用 IKEv2 已經夠了。不過由於 Telegram 在台灣的連線速度有點悲劇,據說用 MTProto 架設 Proxy 會比較快一點,所以我就在我的 VPS 上面弄了一個看看。

因為之前有亂裝東西導致 VPS 裡面一堆垃圾,變得不穩定而且一堆設定檔案在系統裡面的不好經驗,所以這次打算改用 Docker 來改善這個問題。結果看來看去看了兩個多小時還是沒搞定,最後終於弄懂,所以寫一篇文章來紀錄一下,如何真正的「使用 Docker 一個指令安裝 v2ray + MTProto」。

 

先裝 Docker

首先當然要先裝 Docker 嘛,所以 apt-get install docker.io 指令是少不了的。安裝好之後建議做這個教學的「Manage Docker as a non-root user」部分。

 

修改設定檔

接著,把我的設定檔案複製下來,貼到系統的 /etc/v2ray/config.json ,並建立 /var/log/v2ray 資料夾。

如果你只要純粹的 v2ray,不需要 Telegram 代理伺服器(MTProto),則刪除 config.json 中任何有包住 tag 為 tg-intg-out 的 { } 段落。

接著看到 port 的部分,我們的 v2ray 是用 9487 port,MTProto 則是 9453 port,這兩個先記住,但所有 port 都可以隨便改成你喜歡的。

clients 裡面的 ID 務必換掉,請用這個產生器產生,我們使用的 vmess 連線是檢查 UUID ,你可以把他當作是一種密碼。

MTProto 的 secret 則是 32 bit 的 hex,建議可以隨便丟個字串去算 MD5 拿結果出來用就好。(嗯...所以...)

如果你任何有改動建議去 https://jsonlint.com 檢查一下格式是否正確。

 

真 · 一個指令

一個指令下載並執行 v2ray 的映像:

docker run -d --name v2ray --cap-add=NET_ADMIN --restart=always -p 9487:9487/tcp -p 9453:9453/tcp -v /etc/v2ray:/etc/v2ray -v /var/log/v2ray:/var/log/v2ray v2fly/v2fly-core

port 那邊改成你自己設定的數字。下完指令後輸入 docker container list 檢查 container 是否有在運作「並且沒有一直自動重啓」,或者輸入 docker logs v2ray 看看有沒有出現紀錄錯誤,如果一切正常就完成了。

 

VMessAEAD

2022 年之後新版本 v2ray-core 預設開啟 VMessAEAD,在 client 如果連不上的話,試著把 server 跟 client 的 alterId 都設為 0,並且使用支援 VMessAEAD 的 client(例如 macOS 就用 ClashX,不要再用 V2RayX)

 

2 則留言

  1. 「Gary」的個人頭像

    我兩年前就會囉, 不來問 ^__^

    1. 「Hiraku」的個人頭像
      Hiraku

      你就不寫文章啊

發佈留言