SimpleX-Chat/docs/lang/cs/WEBRTC.md

147 lines
4.3 KiB
Markdown
Raw Normal View History

website: add docs to website (#2080) * website: add fontmatter & improve image URLs where necessary * website: add docs to website * website: add prismjs for code highlighting * website: change npm install position in web.sh * website: fix an image URL in lang/cs/README.md * website: improve image paths in lang/cs/translations.md * website: add responsiveness & improve stylings of docs * website: add dir to navbar in blog & docs * website: remove scroll in mobile dropdown menu * website: remove rfcs & add guide docs to website * website: remove file renaming script from web.sh * website: add menu to docs in nav * website: add hash list & add scroll to headers * website: customize docs frontmatter through JS * website: remove supported_languages.json * website: move merge_translations.js to JS folder * website: add the following changes to docs - add frontmatter to new doc merged from master - add ignoreForWeb property to frontmatter of README.md docs * website: remove package-lock.json from .gitignore * website: add package-lock.json from .gitignore * website: add no docs message to docs dropdown * website: improve the sidebar of docs * website: add revision date to docs * website: add script to add version to docs frontmatter * website: add layout to display message in docs if its version is old * website: improve nav responsiveness * website: remove frontmatter form main README & rfcs * website: remove rfcs from website folder * website: add ignore condition for rfcs in .eleventy * website: remove frontmatter from lang README docs * website: remove README from website's lang docs * website: add guides menu in nav * website: following changes - add docs_dropdown.json - extend reference menu in nav - remove docs menu from nav * website: fix in docs sidebar * website: revert main docs README.md files * website: revert main docs README.md files * website: move scripts out of js that are for build * website: remove displayAt form guide docs * website: create a docs_sidebar.json & shift to that approach * update navigation * website: set navbar * website: add icons to external links * website: change the approach for docs sidebar creation * website: update docs template * website: add some strings to en.json and map them accordingly * remove icon --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-05-01 02:31:23 +05:00
---
title: Použití vlastních serverů WebRTC ICE v SimpleX Chat
revision: 31.01.2023
---
| Aktualizováno 31.01.2023 | Jazyky: CZ, [EN](/docs/WEBRTC.md), [FR](/docs/lang/fr/WEBRTC.md) |
# Použití vlastních serverů WebRTC ICE v SimpleX Chat
## Nasazení serveru STUN/TURN
V tomto průvodci budeme používat nejvybavenější a nejosvědčenější implementaci serveru STUN/TURN - [`coturn`](https://github.com/coturn/coturn) a [`Ubuntu 20.04 LTS`](https://ubuntu.com/download/server) distribuci Linuxu.
0. Získejte certifikáty `stun.$Vaše_doména` a `turn.$Vaše_doména`.
Používáme [Let's Encrypt](https://letsencrypt.org/getting-started/).
1. Nainstalujte balíček `coturn` z hlavního repozitáře.
```sh
apt update && apt install coturn`.
```
2. Odkomentujte `TURNSERVER_ENABLED=1` z `/etc/default/coturn`:
```sh
sed -i '/TURN/s/^#//g' /etc/default/coturn
```
3. Konfigurace `coturn` v souboru `/etc/turnserver.conf`:
Viz také komentáře k jednotlivým volbám.
```sh
# Naslouchejte také na portu 443 pro tls.
alt-tls-listening-port=443
# Použijte otisky prstů ve zprávách TURN
fingerprint
# Použijte mechanismus dlouhodobých pověření
lt-cred-mech
# Vaše pověření
user=$YOUR_LOGIN:$YOUR_PASSWORD
# Vaše doména serveru
server-name=$YOUR_DOMAIN
# Výchozí sféra, která bude použita pro uživatele, pokud nebyl nalezen explicitní vztah origin/realm
realm=$YOUR_DOMAIN
# Cesta k vašim certifikátům. Ujistěte se, že jsou čitelné pro proces cotun user/group
cert=/var/lib/turn/cert.pem
pkey=/var/lib/turn/key.pem
# Použijte 2066 bitů předdefinovaného DH klíče TLS
dh2066
# Přihlaste se do journalctl
syslog
# Uživatel/skupina, která bude provozovat službu coturn
proc-user=turnserver
proc-group=turnserver
# Zakázat slabé šifrování
no-tlsv1
no-tlsv1_1
no-tlsv1_2
```
4. Spusťte a povolte službu `coturn`:
```sh
systemctl enable coturn && systemctl start coturn
```
5. Pokud používáte firewall `ufw`, otevřete případně příslušné porty:
- **3478** - "obyčejný" TURN/STUN;
- **5349** - TURN/STUN přes TLS;
- **443** - TURN/STUN přes TLS, který může obejít brány firewall;
- **49152:65535** - rozsah portů, který bude společnost Coturn ve výchozím nastavení používat pro přenos TURN.
```sh
ufw allow 3478 && \
ufw allow 443 && \
ufw allow 5349 && \
ufw allow 49152:65535/tcp && \
ufw allow 49152:65535/udp
```
## Konfigurace mobilních aplikací
Konfigurace mobilní aplikace pro použití vašeho serveru:
1. Otevřete `Nastavení / Síť a servery / WebRTC ICE servery` a přepněte přepínač `Konfigurovat ICE servery`.
2. Do pole zadejte všechny adresy serverů, jednu na řádek, například pokud máte servery na portu 5349:
```
stun:stun.example.com:5349
turn:username:password@turn.example.com:5349
```
To je vše - nyní můžete uskutečňovat audio a video hovory prostřednictvím vlastního serveru, aniž byste s našimi servery sdíleli jakákoli data (kromě výměny klíčů s kontaktem v šifrovaných zprávách E2E).
## Řešení problémů
- **Zjistěte, zda je server dostupný**:
Spusťte tento příkaz v terminálu:
```sh
ping <vaše_ip_nebo_doména>
```
Pokud jsou pakety přenášeny, server je v provozu!
- **Zjistěte, zda jsou otevřené porty**:
Spusťte tento příkaz v terminálu:
```sh
nc -zvw10 <vaše_ip_nebo_doména> 443 5349
```
Měli byste vidět:
```
Připojení k portu <vaše_ip_nebo_doména> 443 [tcp/https] se podařilo!
Připojení k <vaše_ip_nebo_doména> 5349 port [tcp/*] uspělo!
```
- **Test připojení STUN/TURN**:
1. Přejděte na [IceTest](https://icetest.info/).
2. Do části **Sestavit seznam serverů ICE** přidejte:
website: add docs to website (#2080) * website: add fontmatter & improve image URLs where necessary * website: add docs to website * website: add prismjs for code highlighting * website: change npm install position in web.sh * website: fix an image URL in lang/cs/README.md * website: improve image paths in lang/cs/translations.md * website: add responsiveness & improve stylings of docs * website: add dir to navbar in blog & docs * website: remove scroll in mobile dropdown menu * website: remove rfcs & add guide docs to website * website: remove file renaming script from web.sh * website: add menu to docs in nav * website: add hash list & add scroll to headers * website: customize docs frontmatter through JS * website: remove supported_languages.json * website: move merge_translations.js to JS folder * website: add the following changes to docs - add frontmatter to new doc merged from master - add ignoreForWeb property to frontmatter of README.md docs * website: remove package-lock.json from .gitignore * website: add package-lock.json from .gitignore * website: add no docs message to docs dropdown * website: improve the sidebar of docs * website: add revision date to docs * website: add script to add version to docs frontmatter * website: add layout to display message in docs if its version is old * website: improve nav responsiveness * website: remove frontmatter form main README & rfcs * website: remove rfcs from website folder * website: add ignore condition for rfcs in .eleventy * website: remove frontmatter from lang README docs * website: remove README from website's lang docs * website: add guides menu in nav * website: following changes - add docs_dropdown.json - extend reference menu in nav - remove docs menu from nav * website: fix in docs sidebar * website: revert main docs README.md files * website: revert main docs README.md files * website: move scripts out of js that are for build * website: remove displayAt form guide docs * website: create a docs_sidebar.json & shift to that approach * update navigation * website: set navbar * website: add icons to external links * website: change the approach for docs sidebar creation * website: update docs template * website: add some strings to en.json and map them accordingly * remove icon --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-05-01 02:31:23 +05:00
<img src="/docs/stun_1.png">.
- `STUN: stun:<vaše_ip_nebo_doména>:<port>` a stiskněte `Add STUN`.
- `TURN: turn:<vaše_ip_nebo_doména>:<port>`, `Username: <vaše_přihlašovací jméno>`, `Credential: <vaš_pas>` a stiskněte `Add TURN`
Kde `<port>` je 443 nebo 5349.
3. Měli byste vidět své servery v sekci **ICE server list**. Pokud je vše správně nastaveno, stiskněte `Start test`:
website: add docs to website (#2080) * website: add fontmatter & improve image URLs where necessary * website: add docs to website * website: add prismjs for code highlighting * website: change npm install position in web.sh * website: fix an image URL in lang/cs/README.md * website: improve image paths in lang/cs/translations.md * website: add responsiveness & improve stylings of docs * website: add dir to navbar in blog & docs * website: remove scroll in mobile dropdown menu * website: remove rfcs & add guide docs to website * website: remove file renaming script from web.sh * website: add menu to docs in nav * website: add hash list & add scroll to headers * website: customize docs frontmatter through JS * website: remove supported_languages.json * website: move merge_translations.js to JS folder * website: add the following changes to docs - add frontmatter to new doc merged from master - add ignoreForWeb property to frontmatter of README.md docs * website: remove package-lock.json from .gitignore * website: add package-lock.json from .gitignore * website: add no docs message to docs dropdown * website: improve the sidebar of docs * website: add revision date to docs * website: add script to add version to docs frontmatter * website: add layout to display message in docs if its version is old * website: improve nav responsiveness * website: remove frontmatter form main README & rfcs * website: remove rfcs from website folder * website: add ignore condition for rfcs in .eleventy * website: remove frontmatter from lang README docs * website: remove README from website's lang docs * website: add guides menu in nav * website: following changes - add docs_dropdown.json - extend reference menu in nav - remove docs menu from nav * website: fix in docs sidebar * website: revert main docs README.md files * website: revert main docs README.md files * website: move scripts out of js that are for build * website: remove displayAt form guide docs * website: create a docs_sidebar.json & shift to that approach * update navigation * website: set navbar * website: add icons to external links * website: change the approach for docs sidebar creation * website: update docs template * website: add some strings to en.json and map them accordingly * remove icon --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-05-01 02:31:23 +05:00
<img src="/docs/stun_2.png">
4. V části **Výsledky** byste měli vidět něco takového:
website: add docs to website (#2080) * website: add fontmatter & improve image URLs where necessary * website: add docs to website * website: add prismjs for code highlighting * website: change npm install position in web.sh * website: fix an image URL in lang/cs/README.md * website: improve image paths in lang/cs/translations.md * website: add responsiveness & improve stylings of docs * website: add dir to navbar in blog & docs * website: remove scroll in mobile dropdown menu * website: remove rfcs & add guide docs to website * website: remove file renaming script from web.sh * website: add menu to docs in nav * website: add hash list & add scroll to headers * website: customize docs frontmatter through JS * website: remove supported_languages.json * website: move merge_translations.js to JS folder * website: add the following changes to docs - add frontmatter to new doc merged from master - add ignoreForWeb property to frontmatter of README.md docs * website: remove package-lock.json from .gitignore * website: add package-lock.json from .gitignore * website: add no docs message to docs dropdown * website: improve the sidebar of docs * website: add revision date to docs * website: add script to add version to docs frontmatter * website: add layout to display message in docs if its version is old * website: improve nav responsiveness * website: remove frontmatter form main README & rfcs * website: remove rfcs from website folder * website: add ignore condition for rfcs in .eleventy * website: remove frontmatter from lang README docs * website: remove README from website's lang docs * website: add guides menu in nav * website: following changes - add docs_dropdown.json - extend reference menu in nav - remove docs menu from nav * website: fix in docs sidebar * website: revert main docs README.md files * website: revert main docs README.md files * website: move scripts out of js that are for build * website: remove displayAt form guide docs * website: create a docs_sidebar.json & shift to that approach * update navigation * website: set navbar * website: add icons to external links * website: change the approach for docs sidebar creation * website: update docs template * website: add some strings to en.json and map them accordingly * remove icon --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-05-01 02:31:23 +05:00
<img src="/docs/stun_3.png">
Pokud výsledky zobrazují kandidáty `srflx` a `relay`, je vše nastaveno správně!