---
title: "SOCKS5 / SOCKS5 over TLS"
description: "Potatso が対応する SOCKS5 および SOCKS5 over TLS のオプション、リンク、機能。"
---

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SOCKS5 / SOCKS5 over TLS

SOCKS5 サーバは、代わりに接続を開き、UDP を中継します。ユーザ名とパスワードの有無は問いません（[RFC 1928](https://www.rfc-editor.org/rfc/rfc1928)）。**SOCKS5 over TLS** は、同じサーバに TLS 経由で接続するもので、サーバまでの接続も暗号化されます。

Potatso は、アクセス先のアドレスではなく、サイト名をサーバに送り、名前の解決はサーバが行います。ほかのアプリでは `socks5h` やリモート DNS と呼ばれる方式です。

SOCKS5 サーバは、手動、[`socks5://` リンク](#links)、または次のものからの読み込みで追加できます。

- Clash または Mihomo のサブスクリプション（`type: socks5`）、
- Surge の構成（`socks5` と `socks5-tls`）、
- Xray または V2Ray の構成（`socks` アウトバウンド。TLS の有無は問いません）。

SOCKS5 over TLS サーバを手動で追加するには、**SOCKS5** を選び、**TLS** をオンにします。

## 設定 {#settings}

| 設定 | 説明 |
| --- | --- |
| サーバ、ポート | サーバのアドレスとポート。IPv6 アドレスも使えます。 |
| 認証 | なし、またはユーザ名とパスワード。 |
| ユーザ名、パスワード | それぞれ最大 255 バイト。 |
| UDP リレー | デフォルトはオン。[UDP](#udp) を参照してください。 |
| TLS | SOCKS5 over TLS ではオン。 |
| 証明書の検証をスキップ | SOCKS5 over TLS のみ。あらゆる証明書を受け入れます。テストにのみ使用してください。 |
| 証明書のピン | SOCKS5 over TLS のみ、任意。サーバの証明書の SHA-256 フィンガープリント（16 進数 64 桁）。ピンを設定すると、Potatso は自己署名証明書を含め、ピンに一致する証明書だけを受け入れます。 |

サーバがユーザ名とパスワードを要求しているのに、設定していない場合、Potatso は接続しません。Potatso は GSSAPI（Kerberos）認証には対応していません。

`username` が空の Clash または Mihomo のサーバは、Clash と同様に、認証なしで読み込まれます。

### 証明書 {#certificates}

SOCKS5 over TLS では、TLS ハンドシェイクのサーバ名は常にサーバのアドレスで、サーバの証明書はそれに対して有効でなければなりません。有効でない場合は、[証明書のピン](#settings)を設定するか、**証明書の検証をスキップ**をオンにしてください。別のサーバ名は設定できません。別の名前を持つリンク、Surge のサーバ、Xray のサーバは、Potatso では読み込まれません。Clash と Mihomo には SOCKS5 用のサーバ名がないため、Potatso は、それらと同様に、そこにある `sni` を無視します。

Potatso は次のものに対応していません。

- カスタム CA 証明書：代わりにサーバの証明書をピン留めしてください、
- TLS クライアント証明書（Clash の `certificate` と `private-key`）や、証明書の照合に使う別の名前（`name-cert-verify`）：これが必要なサーバは、Potatso は読み込みません、
- ALPN のリスト：Potatso は、それなしでサーバを読み込みます。

## UDP {#udp}

UDP は、QUIC、音声・ビデオ通話、多くのゲームで使われます。**UDP リレー**がオンのとき、Potatso は UDP を、IPv4 と IPv6 のアドレスに対して、サーバ経由（UDP ASSOCIATE）で送ります。自分のアドレスを `0.0.0.0` と報告する NAT の内側のサーバでも動作します。Potatso は、設定されたアドレスに UDP を送ります。

サーバが UDP を中継しない場合は、UDP リレーをオフにしてください。その場合は次のようになります。

- ルールを使う場合、Potatso は UDP をこのサーバに送るルールをスキップし、次に一致するルールが転送先を決めます。ほかのどのルールにも一致しない UDP は、直接送られます。
- グローバルモードでは、すべての通信がサーバを経由しなければならないため、UDP は動作しません。

UDP について知っておくべきこと：

- UDP は、サーバの別の UDP ポートで中継されるため、サーバのファイアウォールで UDP を通す必要があります。
- SOCKS5 over TLS で暗号化されるのは、サーバへの接続だけです。SOCKS5 は UDP をその外側で送るため、UDP 通信は暗号化されずにサーバに届きます。
- UDP では、Potatso がサイトのアドレスを自分で調べ、そのアドレスをサーバに送ります。
- Clash、Mihomo、Surge から読み込む場合、サーバが `udp: false`（Surge では `udp-relay=false`）を指定していない限り、UDP リレーはオンです。`udp` がない場合、Clash は UDP をオフのままにするため、サーバが UDP を中継するか確認してください。

## 機能の対応状況 {#features}

| 機能 | 対応 |
| --- | --- |
| IPv4、IPv6、ドメインの宛先への `CONNECT`（[RFC 1928](https://www.rfc-editor.org/rfc/rfc1928)） | ✅ |
| リモート DNS：サーバによるドメイン名の解決（`socks5h`） | ✅ TCP の場合 |
| 認証なし | ✅ |
| ユーザ名とパスワード（[RFC 1929](https://www.rfc-editor.org/rfc/rfc1929)） | ✅ |
| GSSAPI（[RFC 1961](https://www.rfc-editor.org/rfc/rfc1961)） | ❌ |
| IPv4 と IPv6 の宛先への `UDP ASSOCIATE` | ✅ |
| NAT の内側のサーバでの UDP（`0.0.0.0` のリレーアドレス） | ✅ |
| UDP のフラグメント化 | ❌ フラグメント化されたデータグラムは破棄されます（RFC 1928 で許容されています） |
| `BIND`（アクティブモードの FTP などの着信接続） | ❌ |
| SOCKS5 over TLS | ✅ 証明書のピンと、証明書の検証のスキップに対応 |
| サーバのアドレス以外の TLS サーバ名、ALPN、カスタム CA、クライアント証明書 | ❌ |
| TLS で暗号化された UDP | ❌ SOCKS5 は UDP を TLS の外側で送ります |
| IPv6 のサーバアドレス | ✅ |
| SOCKS4 と SOCKS4a | ❌ |

対応しているすべての機能は、実際の SOCKS5 サーバ（[Xray](https://xtls.github.io/)、[sing-box](https://sing-box.sagernet.org/)、[Mihomo](https://wiki.metacubex.one/)、[3proxy](https://3proxy.org/)、[microsocks](https://github.com/rofl0r/microsocks)）に対してテスト済みです。sing-box は、`socks` インバウンドではなく `mixed` インバウンドで SOCKS5 over TLS を提供します。

## リンク {#links}

SOCKS5 リンクは、1 行にサーバ全体の情報をまとめたものです。

```text
socks5://user:password@host:port#name
socks5+tls://user:password@host:port?insecure=1#name
```

| 部分 | 説明 |
| --- | --- |
| スキーム | SOCKS5 では `socks5://`、`socks://`、`socks5h://`。SOCKS5 over TLS では `socks5+tls://` または `socks+tls://`。Potatso は常にドメイン名をサーバに送るので、`socks5h://` は `socks5://` と同じように動作します。 |
| `user:password` | 任意。パスワード内の `:`、`@`、その他の特殊文字はパーセントエンコードします。たとえば `p:ss` は `p%3Ass` と書きます。ユーザ名に `:` は使えません。 |
| `host` | サーバのアドレス。IPv6 アドレスは `[2001:db8::1]` のように角括弧で囲みます。 |
| `port` | サーバのポート。 |
| `insecure` | SOCKS5 over TLS のみ、任意。`1` で「証明書の検証をスキップ」がオンになります。Potatso は `allowInsecure` と `skip-cert-verify` も読み取ります。 |
| `name` | 任意。Potatso でのサーバ名。 |

リンクには証明書のピンを含められません。サーバのアドレス以外の `sni` を持つリンクは読み込まれません。

Potatso は、ほかに次の 2 つの形式も読み込みます。

```text
socks://base64(user:password)@host:port#name
socks5://base64(user:password@host:port)#name
```

1 つ目は、v2rayN が SOCKS サーバを共有するときの形式です。2 つ目は、`://` と `#` の間のすべてが Base64 でエンコードされた、古い形式です。Potatso がパスワード付きの SOCKS5 サーバを共有するときは、標準のリンクと v2rayN 形式を提供します。

### 例 {#link-examples}

パスワードなしのサーバ：

```text
socks5://proxy.example.com:1080#Open
```

ユーザ名 `alice`、パスワード `s3cret` のサーバ：

```text
socks5://alice:s3cret@proxy.example.com:1080#Auth
```

パスワード `p:ss wörd` をパーセントエンコードしたもの：

```text
socks5://alice:p%3Ass%20w%C3%B6rd@proxy.example.com:1080#Encoded
```

同じサーバを `socks5h://` リンクにしたもの：

```text
socks5h://alice:s3cret@proxy.example.com:1080#Remote-DNS
```

`alice:s3cret` を Base64 でエンコードした v2rayN 形式：

```text
socks://YWxpY2U6czNjcmV0@proxy.example.com:1080#v2rayN
```

古い形式：

```text
socks5://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjEwODA#Legacy
```

IPv6 アドレスのサーバ：

```text
socks5://[2001:db8::1]:1080#IPv6
```

SOCKS5 over TLS サーバ：

```text
socks5+tls://alice:s3cret@proxy.example.com:443#TLS
```

自己署名証明書の SOCKS5 over TLS サーバ：

```text
socks+tls://proxy.example.com:443?insecure=1#Self-signed
```

Source: https://potatso.com/docs/ja/protocols/socks5/index.mdx
