「Xray」の版間の差分
三男wiki>一反もめん 編集の要約なし |
三男wiki>一反もめん 編集の要約なし |
||
181行目: | 181行目: | ||
=== | == クライアント == | ||
=== Windows === | |||
==== v2rayN ==== | |||
オープンソースのWindows用V2Rayクライアント。Xray coreとv2fly coreをサポートしている。 | |||
GitHub https://github.com/2dust/v2rayN | |||
GitHubの[https://github.com/2dust/v2rayN/releases rereases]よりv2rayN-Core.zipをダウンロードし、任意のディレクトリに解凍。 | |||
v2rayN.exeを実行するとクライアントが起動する。 | |||
=== 複数プロトコルのサポート | === Android === | ||
==== V2RayNG ==== | |||
オープンソースのAndroid用V2Rayクライアント。最新版ではXray coreをサポートしている。 | |||
PlayStore https://play.google.com/store/apps/details?id=com.v2ray.ang | |||
GitHub https://github.com/2dust/v2rayNG | |||
=== iOS・iPad OS === | |||
==== Shadowrocket ==== | |||
香港のSHADOW LAUNCH TECHNOLOGYが提供するプロプライエタリな有料V2Rayクライアント。iOS・iPad OSで更新が続いていて、VLESS+XTLSをサポートしているクライアントソフトウェアはこれくらい。 | |||
AppStore https://apps.apple.com/jp/app/shadowrocket/id932747118 | |||
=== Linux === | |||
==== Qv2ray ==== | |||
オープンソースのLinux用GUI V2Rayクライアント。2021年で更新が止まってしまっているためShadowsocks-2022はサポートされていない。 | |||
GitHub https://github.com/Qv2ray/Qv2ray | |||
GitHubの[https://github.com/2dust/v2rayN/releases rereases]より、Qv2ray-v2.7.0-linux-x64.AppImageをダウンロード。 | |||
また、別途[https://github.com/v2fly/v2ray-core/releases/tag/v4.31.0 V2Ray-core]を入手し、任意のディレクトリ(Homeディレクトリ等)に解凍。 | |||
Qv2ray-v2.7.0-linux-x64.AppImageのパーミッションを設定し、起動後「設定→カーネル設定→V2Ray コアのパス」にて先程配置したディレクトリを指定する。 | |||
== 複数プロトコルのサポート == | |||
Xrayの設定ファイル<nowiki>(/usr/local/etc/xray/config.json)</nowiki>の"inbounds"に以下の様に記述すると、同一インスタンスにて複数プロトコルを使い分ける事ができる。 | Xrayの設定ファイル<nowiki>(/usr/local/etc/xray/config.json)</nowiki>の"inbounds"に以下の様に記述すると、同一インスタンスにて複数プロトコルを使い分ける事ができる。 | ||
226行目: | 259行目: | ||
== おまけ(広告ブロック) == | |||
サーバー側で使用するDNSにAdGuard DNSを指定し、広告をクライアント側に送信しないようにする。セキュアな通信環境を入手する目的でXrayを導入する場合、パブリックDNSを使用するリスクは自己責任で判断する。 | サーバー側で使用するDNSにAdGuard DNSを指定し、広告をクライアント側に送信しないようにする。セキュアな通信環境を入手する目的でXrayを導入する場合、パブリックDNSを使用するリスクは自己責任で判断する。 | ||
各ディストリビューションで設定が異なるため一例を記載する。 | 各ディストリビューションで設定が異なるため一例を記載する。 | ||
=== Ubuntu 20.04 LTS === | |||
2022年10月8日 (土) 22:04時点における版
Xrayは主に中国のネット検閲システムであるGFW(以下、「金盾」と言う)を回避するために利用されている検閲回避ツールである。更新が止まったV2Rayのソースコードを元にProject Xにより管理されている。
サーバー側にツールを配置後、クライアント側から接続することによりVPNのように通信を行う。VPNとの違いはディープ・パケット・インスペクション(以下、「DPI」と言う)の回避を目的とした通信プロトコルのサポートを行っている点である。
導入
以下に導入方法を記す。
全プロトコル共通
全てのプロトコルで必要なものは以下の2つ。
・VPSインスタンス(最小構成で良い)
・静的IP
IPを固定したらSSHでインスタンスに接続。
ルートユーザーになる。
sudo su
インスタンスのタイムゾーンを日本時間に設定。
timedatectl set-timezone Asia/Tokyo
Xrayをインストール
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
VMess
Shadowsocksに似ているが暗号化方式の選択を重視せず、VMessの暗号化方式はクライアントによって指定される。暗号化に時間依存のキーを使用するなど難読性が高い。
Xrayの設定ファイルを作成。
vi /usr/local/etc/xray/config.json
VMessの設定は以下の通り。
"port"は使用するポート番号で任意の値に変更可。インスタンスの設定で要開放。
"id"はUUIDを示し、"********-****-****-****-************"を必ず一意の値に変更する。
{
"log":{
"loglevel": "warning",
"access": "/var/log/xray/access.log",
"error": "/var/log/xray/error.log"
},
"inbounds": [{
"port": 10086,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "********-****-****-****-************",
"level": 1,
"alterId": 64
}
]
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
},{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}],
"routing": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "blocked"
}
]
}
}
環境変数の値を設定。
vi /etc/systemd/system/xray.service
[Service]の末尾に以下追記。
Environment=XRAY_VMESS_AEAD_FORCED=false
Xrayを再起動。
systemctl restart xray
クライアントソフトウェアに以下の値を入力し接続を確認してみよう。
・Address ・・・・・・インスタンスのグローバルIPアドレス
・Port ・・・・・・・設定ファイルに記述したポート番号
・id ・・・・・・・・設定ファイルに記述したUUID
・alterId ・・・・・・設定ファイルのalterId
・security ・・・・・"chacha20-poly1305"を選択
・Network ・・・・・・tcp
・head type ・・・・・none
Shadowsocks-2022
Shadowsocksは、SOCKS5サーバーをsslocalとssserverに分割してインターネットトラフィックを難読化し、DPIの回避を行う。
Shadowsocks-2022では従来の物からパフォーマンスを向上させ、完全なリプレイ保護を備えており、古いプロトコルのセキュリティ問題に対処している。
Xrayの設定ファイルを作成。
vi /usr/local/etc/xray/config.json
Shadowsocks-2022の設定は以下の通り。
"port"は使用するポート番号で任意の値に変更可。インスタンスの設定で要開放。
"password"は接続用パスワードを示し、値を必ず一意の値に変更する。32ビット長のパスワードが必須で、openssl rand -base64 32で生成すると良い。
{
"log":{
"loglevel": "warning",
"access": "/var/log/xray/access.log",
"error": "/var/log/xray/error.log"
},
"inbounds": [{
"port": 8488,
"protocol": "shadowsocks",
"settings": {
"method": "2022-blake3-aes-256-gcm",
"password": "gIljL7ERTJgZC2Kkv2iZvtkQ4MZMdhoTeQOszoAth30=",
"network": "tcp,udp"
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
},{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}],
"routing": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "blocked"
}
]
}
}
Xrayを再起動。
systemctl restart xray
クライアントソフトウェアに以下の値を入力し接続を確認してみよう。
・Address ・・・・・・インスタンスのグローバルIPアドレス
・Port ・・・・・・・設定ファイルに記述したポート番号
・password ・・・・・設定ファイルに記述した接続用パスワード
・security ・・・・・"2022-blake3-aes-256-gcm"を選択
クライアント
Windows
v2rayN
オープンソースのWindows用V2Rayクライアント。Xray coreとv2fly coreをサポートしている。
GitHub https://github.com/2dust/v2rayN
GitHubのrereasesよりv2rayN-Core.zipをダウンロードし、任意のディレクトリに解凍。
v2rayN.exeを実行するとクライアントが起動する。
Android
V2RayNG
オープンソースのAndroid用V2Rayクライアント。最新版ではXray coreをサポートしている。
PlayStore https://play.google.com/store/apps/details?id=com.v2ray.ang
GitHub https://github.com/2dust/v2rayNG
iOS・iPad OS
Shadowrocket
香港のSHADOW LAUNCH TECHNOLOGYが提供するプロプライエタリな有料V2Rayクライアント。iOS・iPad OSで更新が続いていて、VLESS+XTLSをサポートしているクライアントソフトウェアはこれくらい。
AppStore https://apps.apple.com/jp/app/shadowrocket/id932747118
Linux
Qv2ray
オープンソースのLinux用GUI V2Rayクライアント。2021年で更新が止まってしまっているためShadowsocks-2022はサポートされていない。
GitHub https://github.com/Qv2ray/Qv2ray
GitHubのrereasesより、Qv2ray-v2.7.0-linux-x64.AppImageをダウンロード。
また、別途V2Ray-coreを入手し、任意のディレクトリ(Homeディレクトリ等)に解凍。
Qv2ray-v2.7.0-linux-x64.AppImageのパーミッションを設定し、起動後「設定→カーネル設定→V2Ray コアのパス」にて先程配置したディレクトリを指定する。
複数プロトコルのサポート
Xrayの設定ファイル(/usr/local/etc/xray/config.json)の"inbounds"に以下の様に記述すると、同一インスタンスにて複数プロトコルを使い分ける事ができる。
ポート番号はそれぞれ異なる番号にしたほうが良い。
例:Shadowsocks-2022とVmess
"inbounds": [{
"port": 8488,
"protocol": "shadowsocks",
"settings": {
"method": "2022-blake3-aes-256-gcm",
"password": "gIljL7ERTJgZC2Kkv2iZvtkQ4MZMdhoTeQOszoAth30=",
"network": "tcp,udp"
}
},{
"port": 10086,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "272768b2-ef4f-447f-8a41-fb5119a1955c",
"level": 1,
"alterId": 64
}
]
}
}],
おまけ(広告ブロック)
サーバー側で使用するDNSにAdGuard DNSを指定し、広告をクライアント側に送信しないようにする。セキュアな通信環境を入手する目的でXrayを導入する場合、パブリックDNSを使用するリスクは自己責任で判断する。
各ディストリビューションで設定が異なるため一例を記載する。
Ubuntu 20.04 LTS
resolved.confを編集する。
vi /etc/systemd/resolved.conf
[Resolve]にAdGuardのDNSサーバーを記載。
DNS=94.140.14.14, 94.140.15.15
ローカルDNSを経由せず、指定したDNSリゾルバに直接聞きにいくようシンボリックリンクを変更
ln -f -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemd-resolvedを再起動。
systemctl restart systemd-resolved