<?xml version="1.0" encoding="UTF-8" ?>
<!-- RSS generated by PHPBoost on Sun, 08 Nov 2026 15:15:28 +0100 -->
<rss version="2.0" xmlns:atom="https://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Softcloud Wiki]]></title>
		<atom:link href="https://wiki2.softcloud.fr/syndication/rss/wiki/" rel="self" type="application/rss+xml"/>
		<link>https://wiki2.softcloud.fr</link>
		<description><![CDATA[Softcloud Wiki : derniers articles]]></description>
		<copyright>(C) 2005-2026 PHPBoost</copyright>
		<language>fr</language>
		<generator>PHPBoost</generator>
		
            <item>
                <title><![CDATA[Installer YunoHost Raspberry Pi]]></title>
                <link>https://wiki2.softcloud.fr/wiki/installer-yunohost-raspberry-pi</link>
                <guid>https://wiki2.softcloud.fr/wiki/installer-yunohost-raspberry-pi</guid>
                <description><![CDATA[<h2 class="formatter-title wiki-paragraph-2" id="paragraph-pre-requis">Pré-requis</h2><br />

<br />
<ul class="formatter-ul"><li class="formatter-li">Un Raspberry Pi 3 ou 4 ;</li><li class="formatter-li">Une alimentation électrique (soit un adaptateur, soit un câble microUSB) pour alimenter la carte ;</li><li class="formatter-li">Une carte microSD : au moins 16Go de capacité,<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://fr.wikipedia.org/wiki/Carte_SD#Vitesse">classe <span class="emoji-tag">&laquo;</span> A1 <span class="emoji-tag">&raquo;</span></a><span class="emoji-tag">&nbsp;</span>hautement recommandée (comme par exemple<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://www.amazon.fr/SanDisk-microSDHC-Adaptateur-homologu%C3%A9e-Nouvelle/dp/B073JWXGNT/">cette carte SanDisk A1</a>) ;</li><li class="formatter-li">Un<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/isp">fournisseur d'accès à Internet correct</a>, de préférence avec une bonne vitesse d&#8217;upload ;</li><li class="formatter-li">Un câble ethernet/RJ-45 pour brancher la carte à votre routeur/box internet ;</li><li class="formatter-li">Un ordinateur pour lire ce guide, flasher l'image et accéder à votre serveur.</li></ul><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-telecharger-l-image-yunohost">Télécharger l'image YunoHost</h2><br />

<br />
Si vous souhaitez vérifier la validité de nos images signées, vous pouvez<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://forge.yunohost.org/yunohost.asc">télécharger notre clé publique</a>.<br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-raspberry-pi">Raspberry Pi</h3><br />

<br />
64 bits - Rpi 3, 4<br />
<br />
<img src="https://yunohost.org/user/images/raspberrypi.png" alt="raspberrypi" /><br />
<br />
<a class="offload" href="https://build.yunohost.org/yunohost-bullseye-11.0.10-rpi-stable.img.zip.sha256sum">Checksum</a><br />
<br />
<a class="offload" href="https://build.yunohost.org/yunohost-bullseye-11.0.10-rpi-stable.img.zip.sig">Signature</a><br />
<br />
<a class="offload" href="https://build.yunohost.org/yunohost-bullseye-11.0.10-rpi-stable.img.zip">Télécharger<span class="emoji-tag">&nbsp;</span>v.11.0.10</a><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-flasher-l-image-yunohost">Flasher l'image YunoHost</h2><br />

<br />
Maintenant que vous avez téléchargé l&#8217;image de YunoHost, vous devez la mettre sur une carte microSD<br />
<br />
Téléchargez<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://www.balena.io/etcher/">Etcher</a><span class="emoji-tag">&nbsp;</span>pour votre système d'exploitation et installez-le.<br />
<br />
Branchez votre carte microSD, sélectionnez votre image et cliquez sur <span class="emoji-tag">&laquo;</span> Flash <span class="emoji-tag">&raquo;</span>.<br />
<br />
<img src="https://yunohost.org/user/images/etcher.gif" alt="etcher" /><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-demarrer-la-carte">Démarrer la carte</h2><br />

<br />
<ul class="formatter-ul"><li class="formatter-li">Branchez le câble Ethernet (un côté sur votre box, l'autre côté à votre carte).<br />
<ul class="formatter-ul"><li class="formatter-li">Pour les utilisateurs et utilisatrices souhaitant configurer la carte pour la connecter via le WiFi à la place, voir<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md">cet exemple</a>.</li></ul></li><li class="formatter-li">Mettez la carte SD dans le serveur.</li><li class="formatter-li">(Facultatif) Il est possible de brancher un écran et un clavier sur votre serveur en cas de soucis, pour vérifier que le processus de démarrage (boot) se passe bien, ou encore pour avoir un accès direct en console.</li><li class="formatter-li">Branchez l'alimentation.</li><li class="formatter-li">Laissez quelques minutes à votre serveur pour s'autoconfigurer durant le premier démarrage.</li><li class="formatter-li">Assurez-vous que votre ordinateur (de bureau ou portable) est connecté au même réseau local (c'est-à-dire la même box Internet) que votre serveur.</li></ul><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-lancer-la-configuration-initiale">Lancer la configuration initiale</h2><br />

<br />
Si vous êtes en train de restaurer une sauvegarde YunoHost, vous devez sauter cette étape et vous référer à la section<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/backup#restoring-during-the-postinstall">Restaurer durant la post-installation à la place de cette étape de configuration initiale</a>.<br />
<br />
Dans un navigateur web, tapez dans la barre d'adresse<span class="emoji-tag">&nbsp;</span><strong><pre style="display:inline;">https://yunohost.local</pre><span class="emoji-tag">&nbsp;</span>(utilisez<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">yunohost-2.local</pre>, etc. s'il y a plusieurs serveurs YunoHost sur le réseau)</strong>.<br />
<br />
Si ça ne fonctionne pas, vous devez<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/finding_the_local_ip">chercher l'adresse IP locale du serveur</a>. L'adresse ressemble typiquement à<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">192.168.x.y</pre>, et vous devriez taper<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">https://192.168.x.y</pre><span class="emoji-tag">&nbsp;</span>dans la barre d'adresse du navigateur.<br />
<br />
Lors de la première visite, vous rencontrerez très probablement un avertissement de sécurité lié au certificat utilisé. Pour le moment, votre serveur utilise un certificat auto-signé. Vous pourrez plus tard ajouter un certificat automatiquement reconnu par les navigateurs comme décrit dans<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/certificate">la page sur les certificats</a>. En attendant, ajoutez une exception de sécurité pour accepter le certificat actuel. Toutefois,<span class="emoji-tag">&nbsp;</span><strong>s'il vous plaît</strong>, ne prenez pas l'habitude d'accepter ce genre d'alerte de sécurité !<br />
<br />
Vous devriez ensuite obtenir cette page :<br />
<br />
<img src="https://yunohost.org/images/p/o/s/t/i/postinstallweb-4c2e3d7a.png" alt="postinstallweb-4c2e3d7a" /><br />
<br />
<em>Capture d'écran de la page de configuration initiale</em><br />
<br />
<strong>Domaine principal</strong><br />
<br />
C&#8217;est le nom de domaine qui permettra l&#8217;accès à votre serveur ainsi qu&#8217;au<span class="emoji-tag">&nbsp;</span><strong>portail d&#8217;authentification</strong><span class="emoji-tag">&nbsp;</span>des utilisateurs. Vous pourrez ensuite ajouter d'autres domaines, et changer celui qui sera le domaine principal si besoin.<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">Si l'auto-hébergement est tout neuf pour vous et que vous n'avez pas encore de nom de domaine, nous recommandons d'utiliser un domaine en<span class="emoji-tag">&nbsp;</span><strong>.nohost.me</strong><span class="emoji-tag">&nbsp;</span>/<span class="emoji-tag">&nbsp;</span><strong>.noho.st</strong><span class="emoji-tag">&nbsp;</span>/<span class="emoji-tag">&nbsp;</span><strong>.ynh.fr</strong><span class="emoji-tag">&nbsp;</span>(exemple :<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">homersimpson.nohost.me</pre>). S'il n'est pas déjà utilisé, le domaine sera automatiquement rattaché à votre serveur YunoHost, et vous n&#8217;aurez pas d&#8217;étape de configuration supplémentaire. Toutefois, notez que l'utilisation d'un de ces noms de domaines implique que vous n'aurez pas le contrôle complet sur votre configuration DNS.</li><li class="formatter-li">Si en revanche vous avez déjà votre propre nom de domaine, vous souhaitez probablement l'utiliser. Vous aurez donc besoin ensuite de configurer les enregistrements DNS comme expliqué<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/dns_config">ici</a>.</li></ul><br />
<br />
Oui, vous<span class="emoji-tag">&nbsp;</span><em>devez</em><span class="emoji-tag">&nbsp;</span>configurer un nom de domaine. Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en<span class="emoji-tag">&nbsp;</span><strong>.nohost.me</strong>,<span class="emoji-tag">&nbsp;</span><strong>.noho.st</strong><span class="emoji-tag">&nbsp;</span>ou<span class="emoji-tag">&nbsp;</span><strong>.ynh.fr</strong>, vous pouvez utilisez un <span class="emoji-tag">&laquo;</span> faux <span class="emoji-tag">&raquo;</span> domaine comme par exemple<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">yolo.test</pre><span class="emoji-tag">&nbsp;</span>et<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/dns_local_network">modifier votre fichier<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/hosts</pre><span class="emoji-tag">&nbsp;</span><strong>sur votre ordinateur local</strong><span class="emoji-tag">&nbsp;</span>pour que ce domaine pointe vers l'IP de votre serveur, comme expliqué ici</a>.<br />
<br />
<strong>Premier compte utilisateur</strong><br />
<br />
<a class="offload" href="https://forum.yunohost.org/t/yunohost-11-1-release-sortie-de-yunohost-11-1/23378">Depuis YunoHost 11.1</a>, le premier compte utilisateur est créé à cette étape. Il vous faudra choisir un nom d'utilisateur et un mot de passe raisonablement complexe. (Nous ne pouvons que souligner l'importance du choix d'un mot de passe<span class="emoji-tag">&nbsp;</span><strong>robuste</strong><span class="emoji-tag">&nbsp;</span>!) Ce compte utilisateur sera ajouté au groupe Admins, et pourra se connecter au portail utilisateur, à la webadmin, et se connecter<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/ssh">via<span class="emoji-tag">&nbsp;</span><strong>SSH</strong></a><span class="emoji-tag">&nbsp;</span>ou<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/filezilla"><strong>SFTP</strong></a>. Les admins recevront aussi les mails envoyés à<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">root@votredomaine.tld</pre><span class="emoji-tag">&nbsp;</span>et<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">admin@votredomaine.tld</pre><span class="emoji-tag">&nbsp;</span>: ces emails peuvent être utilisés pour envoyer des informations ou des alertes techniques. Vous pourrez plus tard ajouter d'autres comptes utilisateur supplémentaire, qu'il est aussi possible d'ajouter au groupe Admins.<br />
<br />
Ce compte remplace l'ancien compte<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">admin</pre>, qui est peut être toujours mentionné dans certaines pages de documentation. Dans ce cas, remplacez simplement<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">admin</pre><span class="emoji-tag">&nbsp;</span>par votre identifiant.<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-lancer-le-diagnostic">Lancer le diagnostic</h2><br />

<br />
Une fois la postinstall terminée, vous devriez pouvoir vous connecter à la webadmin en utilisant les identiants du premier compte utilisateur que vous venez de créer.<br />
<br />
Le système de diagnostic est conçu pour fournir un moyen facile de valider que tous les aspects critiques de votre serveur sont proprement configurés et pour vous guider dans la résolution des problèmes soulevés. Le diagnostic se lance deux fois par jour et envoie une alerte si un dysfonctionnement est détecté.<br />
<br />
N.B. :<span class="emoji-tag">&nbsp;</span><strong>ne partez pas en courant</strong><span class="emoji-tag">&nbsp;</span>! La première fois que vous lancerez le diagnostic, il est assez normal d'avoir plusieurs alertes rouges ou jaunes car vous devez généralement<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/dns_config">configurer les enregistrements DNS</a><span class="emoji-tag">&nbsp;</span>(si vous n'utilisez pas un domaine<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">.nohost.me</pre>,<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">.noho.st</pre><span class="emoji-tag">&nbsp;</span>ou<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">.ynh.fr</pre>), ajouter un fichier de swap et/ou<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/isp_box_config">configurer la redirection des ports</a>.<br />
<br />
Si une alerte n'est pas pertinente (par exemple parce que vous ne pensez pas utiliser une fonctionnalité spécifique), il est tout à fait convenable d'indiquer le dysfonctionnement comme <span class="emoji-tag">&laquo;</span> À ignorer <span class="emoji-tag">&raquo;</span> en allant dans l'administration web > Diagnostic, et en cliquant sur le bouton <span class="emoji-tag">&laquo;</span> Ignorer <span class="emoji-tag">&raquo;</span> pour ce dysfonctionnement spécifique.<br />
<br />
<span class="emoji-tag">&nbsp;</span><br />
<br />
Pour lancer le diagnostic, allez dans l'Administration Web dans la partie Diagnostic. Vous devriez obtenir un écran comme celui-ci :<br />
<br />
<img src="https://yunohost.org/images/d/i/a/g/n/diagnostic-264f4273.png" alt="diagnostic-264f4273" /><br />
<br />
<em>Capture d'écran du panneau de diagnostic</em><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-obtenir-un-certificat-let-s-encrypt">Obtenir un certificat Let's Encrypt</h2><br />

<br />
Une fois que vous avez configuré, si nécessaire, les enregistrements DNS et la redirection de ports, vous devriez être en mesure d'installer un certificat Let's Encrypt. Ceci permettra de supprimer l'étrange alerte de sécurité vue plus tôt.<br />
<br />
Pour plus d'instructions détaillées, ou pour en savoir plus à propos des certificats SSL/TLS, voir<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/certificate">la page correspondante ici</a>.<br />
<br />
<span class="emoji-tag">&nbsp;</span><br />
<br />
<img src="https://yunohost.org/images/c/e/r/t/i/certificate-before-le-a3e7e722.png" alt="certificate-before-le-a3e7e722" /><br />
<br />
<em>Capture d'écran du panneau pour installer un certificat Let's Encrypt</em><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-felicitations">Félicitations !</h2><br />

<br />
Vous avez maintenant un serveur plutôt bien configuré. Si vous découvrez YunoHost, nous vous recommandons de jeter un &#339;il à<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/overview">la visite guidée</a>. Vous devriez aussi être en mesure d'<a class="offload" href="https://yunohost.org/fr/apps">installer vos applications favorites</a>. N'oubliez pas de<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://yunohost.org/fr/backup">prévoir des sauvegardes</a> !]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:30 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[Linux]]></title>
                <link>https://wiki2.softcloud.fr/wiki/linux</link>
                <guid>https://wiki2.softcloud.fr/wiki/linux</guid>
                <description><![CDATA[]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[Raspberry Pi]]></title>
                <link>https://wiki2.softcloud.fr/wiki/raspberry-pi</link>
                <guid>https://wiki2.softcloud.fr/wiki/raspberry-pi</guid>
                <description><![CDATA[]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[IPV6]]></title>
                <link>https://wiki2.softcloud.fr/wiki/ipv6</link>
                <guid>https://wiki2.softcloud.fr/wiki/ipv6</guid>
                <description><![CDATA[<div class="formatter-container formatter-code code-PYTHON"><span class="formatter-title">Code PYTHON : </span><div class="formatter-content"><pre style="display:inline;"><pre class="python" style="font-family:monospace;">yunohost settings <span style="color: #008000;">set</span> smtp.<span style="color: black;">allow_ipv6</span> -v <span style="color: #008000;">False</span></pre></pre></div></div><br />
<br />
Si ça ne fonctionne pas, pour désactiver l&#8217;ipv6, c&#8217;est du domaine de Gnu/Linux et non de yunohost. Tu peux le faire en créant le fichier suivant: /etc/sysctl.d/disableipv6.conf<br />
Et son contenu:<br />
<br />
<div class="formatter-container formatter-code code-PHP"><span class="formatter-title">Code PHP : </span><div class="formatter-content"><pre style="display:inline;"><pre class="php" style="font-family:monospace;"> désactivation de ipv6 pour toutes les interfaces
net<span style="color: #8000FF;">.</span>ipv6<span style="color: #8000FF;">.</span>conf<span style="color: #8000FF;">.</span>all<span style="color: #8000FF;">.</span>disable_ipv6<span style="color: #8000FF;">=</span><span style="color: #FF8000;">1</span>
&nbsp;
<span style="color: #008000; font-style: italic;"># désactivation de l'auto configuration pour toutes les interfaces
</span>net<span style="color: #8000FF;">.</span>ipv6<span style="color: #8000FF;">.</span>conf<span style="color: #8000FF;">.</span>all<span style="color: #8000FF;">.</span>autoconf<span style="color: #8000FF;">=</span><span style="color: #FF8000;">0</span>
&nbsp;
<span style="color: #008000; font-style: italic;"># désactivation de ipv6 pour les nouvelles interfaces (ex:si ajout de carte réseau)
</span>net<span style="color: #8000FF;">.</span>ipv6<span style="color: #8000FF;">.</span>conf<span style="color: #8000FF;">.</span><span style="color: #0000FF; font-weight: bold;">default</span><span style="color: #8000FF;">.</span>disable_ipv6<span style="color: #8000FF;">=</span><span style="color: #FF8000;">1</span>
&nbsp;
<span style="color: #008000; font-style: italic;"># désactivation de l'auto configuration pour les nouvelles interfaces
</span>net<span style="color: #8000FF;">.</span>ipv6<span style="color: #8000FF;">.</span>conf<span style="color: #8000FF;">.</span><span style="color: #0000FF; font-weight: bold;">default</span><span style="color: #8000FF;">.</span>autoconf<span style="color: #8000FF;">=</span><span style="color: #FF8000;">0</span></pre></pre></div></div><br />
<br />
puis<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sysctl -p</pre> pour prendre en compte les changements.]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[[Tuto] Résoudre le problème de hairpinning Orange avec le DHCP/DNS de YunoHost]]></title>
                <link>https://wiki2.softcloud.fr/wiki/tuto-resoudre-le-probleme-de-hairpinning-orange-avec-le-dhcpdns-de-yunohost</link>
                <guid>https://wiki2.softcloud.fr/wiki/tuto-resoudre-le-probleme-de-hairpinning-orange-avec-le-dhcpdns-de-yunohost</guid>
                <description><![CDATA[<span class="message-helper bgc success"><a class="offload" href="https://forum.yunohost.org/t/tuto-resoudre-le-probleme-de-hairpinning-orange-avec-le-dhcp-dns-de-yunohost/4125/37">https://forum.yunohost.org/t/tuto-resoudre-le-probleme-de-hairpinning-orange-avec-le-dhcp-dns-de-yunohost/4125/37</a></span><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-avertissement">Avertissement</h2><br />

<br />
Dans un premier je voudrais préciser que cette méthode fonctionne avant tout pour moi ! Je n&#8217;ai aucune idée du respect des &#8220;bonnes pratiques&#8221; avec ces propositions là.<br />
<br />
Cependant, je serais ravi d&#8217;échanger avec vous tous (utilisateurs de YunoHost ou bien dev YunoHost) par rapport à cette méthode là ; est-ce une bonne pratique ? ; est-ce que je me prends la tete ? ; est ce qu&#8217;il y a moyen de faire ça plus facilement ? Enfin bref j&#8217;attend avec impatience vos retours<span class="emoji-tag">&nbsp;</span><img src="https://forum.yunohost.org/images/emoji/twitter/wink.png" alt="wink" /><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-introduction">Introduction</h2><br />

<br />
Étant client Orange fibre j&#8217;ai comme beaucoup le problème de hairpinning avec ma Livebox.<br />
<br />
En épluchant un peu le forum ici et d&#8217;autres sur internet voici la solution que je propose pour contourner ce problème.<br />
<br />
Pour résumer je n&#8217;utilise la Livebox que comme bridge internet, c&#8217;est mon serveur YunoHost qui fait office de serveur DHCP et résolveur DNS. Tout ça grace à DNSmasq qui est normalement installé est activé par défaut sur votre serveur YunoHost.<br />
<br />
Pour résumé voici les avantages de cette méthode :<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">Vous pouvez accéder à l&#8217;interface YunoHost et à vos services depuis vos machines locales directement via l&#8217;URL de votre domaine et non plus en utilisant l&#8217;ip locale de votre serveur YunoHost</li><li class="formatter-li">Vous pouvez renouveler vos certificats Let&#8217;s Encrypt sans avoir besoin d&#8217;utiliser l&#8217;option<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">--no-checks</pre><span class="emoji-tag">&nbsp;</span>(plus de Warning de hairpinning)</li><li class="formatter-li">YunoHost sera capable de renouveler automatiquement vos certificats Let&#8217;s Encrypt</li></ul><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-la-tv-par-internet">La TV par internet</h2><br />

<br />
Personnellement je n&#8217;utilise pas le décodeur TV d&#8217;orange (en plus j&#8217;ai le décodeur blanc qui est complètement buggé &#8230<img src="https://wiki2.softcloud.fr/images/smileys/wink.png" alt=";)" class="smiley" />. Cependant, je le précise plus tard, mais il est important que le décodeur reçoive son IP du serveur DHCP de la box et non pas par YunoHost. Je crois que c&#8217;est dû au fait que la TV d&#8217;Orange a besoin d&#8217;utiliser les DNS hardcodés dans la LiveBox.<br />
<br />
Finalement : Si vous voulez garder la TV d&#8217;Orange il faut laisser activer le DHCP de la LiveBox, pour les autres aucun problème à le désactiver.<br />
<br />
Je précise les deux cas dans le tuto.<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-verification-de-la-config-actuelle">Vérification de la config actuelle</h2><br />

<br />
Avant de commencer je propose de faire un petit tour d&#8217;horizon afin d&#8217;être sûr que la base soit bonne. De mon coté, voici le contenu des différents fichiers de configuration qui nous intéresse dans leurs états juste après une installation fraiche de YunoHost.<br />
<br />
<ul class="formatter-ul"><li class="formatter-li"><pre style="display:inline;">/etc/network/interfaces</pre></li></ul><br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">source</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>network<span style="color: #000000; font-weight: bold;">/</span>interfaces.d<span style="color: #000000; font-weight: bold;">/*</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># The loopback network interface</span>
auto lo
iface lo inet loopback
&nbsp;
<span style="color: #666666; font-style: italic;"># The primary network interface</span>
allow-hotplug eth0
iface eth0 inet dhcp</pre></pre></div></div><br />
<br />
<ul class="formatter-ul"><li class="formatter-li"><pre style="display:inline;">/etc/resolv.conf</pre></li></ul><br />
<br />
<div class="formatter-container formatter-code code-CSS"><span class="formatter-title">Code CSS : </span><div class="formatter-content"><pre style="display:inline;"><pre class="css" style="font-family:monospace;"># Dynamic resolv.conf<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #00AA00;">&#41;</span> file for glibc resolver<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #00AA00;">&#41;</span> generated by resolvconf<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #00AA00;">&#41;</span>
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1</pre></pre></div></div><br />
<br />
<ul class="formatter-ul"><li class="formatter-li"><pre style="display:inline;">/etc/resolv.dnsmasq.conf</pre></li></ul><br />
<br />
<div class="formatter-container formatter-code code-NGINX"><span class="formatter-title">Code NGINX : </span><div class="formatter-content"><pre style="display:inline;"><pre class="nginx" style="font-family:monospace;">nameserver 84.200.69.80
nameserver 141.255.128.100
nameserver 80.67.169.12
nameserver 80.67.188.188
nameserver 80.67.169.40
nameserver 89.234.186.18
nameserver 213.73.91.35
nameserver 89.234.141.66
nameserver 89.233.43.71
nameserver 91.239.100.100
nameserver 85.214.20.141
nameserver 141.255.128.101
nameserver 84.200.70.40</pre></pre></div></div><br />
<br />
<ul class="formatter-ul"><li class="formatter-li"><pre style="display:inline;">/etc/dnsmasq.conf</pre></li></ul><br />
<br />
<div class="formatter-container formatter-code code-JAVASCRIPT"><span class="formatter-title">Code JAVASCRIPT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="javascript" style="font-family:monospace;">domain<span style="color: #339933;">-</span>needed
expand<span style="color: #339933;">-</span>hosts
&nbsp;
listen<span style="color: #339933;">-</span>address<span style="color: #339933;">=</span>127.0.0.1
resolv<span style="color: #339933;">-</span>file<span style="color: #339933;">=/</span>etc<span style="color: #339933;">/</span>resolv.<span style="color: #660066;">dnsmasq</span>.<span style="color: #660066;">conf</span>
cache<span style="color: #339933;">-</span>size<span style="color: #339933;">=</span><span style="color: #CC0000;">256</span></pre></pre></div></div><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-1-attribution-deune-ip-fixe-au-serveur-yunohost">1. Attribution d’une IP fixe au serveur YunoHost</h2><br />

<br />
Si ce n&#8217;est pas déjà fait, je pense que c&#8217;est une bonne chose de fixer l&#8217;adresse IP du serveur YunoHost étant donné que nous allons désactiver le serveur DHCP de la LiveBox.<br />
<br />
Pour ça, il suffit d&#8217;éditer le fichier<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/network/interfaces</pre><span class="emoji-tag">&nbsp;</span>et de modifier la ligne correspondant à l&#8217;interface réseau utilisée. Mais avant, on fait une petite sauvegarde du fichier avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo cp /etc/network/interfaces /etc/network/interfaces.bak</pre><span class="emoji-tag">&nbsp;</span>et enfin on édite le fichier avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo nano /etc/network/interfaces</pre><span class="emoji-tag">&nbsp;</span>et on le modifie comme ceci :<br />
<br />
<div class="formatter-container formatter-code code-NGINX"><span class="formatter-title">Code NGINX : </span><div class="formatter-content"><pre style="display:inline;"><pre class="nginx" style="font-family:monospace;">source /etc/network/interfaces.d/*
&nbsp;
# The loopback network interface
auto lo
iface lo inet loopback
&nbsp;
# The primary network interface
allow-hotplug eth0
iface eth0 inet static # On passe en static
address 192.168.1.2 # Adresse IP locale que l'on souhaite pour YunoHost
netmask 255.255.255.0 # Le masque du sous-réseau
gateway 192.168.1.1 # L'adresse de notre passerelle, ici c'est notre box qui a normalement cette IP</pre></pre></div></div><br />
<br />
Un petit redémarrage et normalement vous pouvez vous connecter à votre serveur avec sa nouvelle IP.<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-2-activer-le-serveur-dhcp-de-dnsmasq">2. Activer le serveur DHCP de DNSmasq</h2><br />

<br />
Maintenant on va activer le serveur DHCP de YunoHost. Le rôle du serveur DHCP est de fournir une adresse IP valide aux machines qui se connectent à votre réseau local ainsi que les différentes informations utiles comme la passerelle ou encore le resolveur DNS.<br />
<br />
Jusqu&#8217;à présent c&#8217;était votre LiveBox qui était chargée de faire ça. Maintenant c&#8217;est votre serveur YunoHost qui va s&#8217;en charger. L&#8217;avantage en utilisant celui-ci, c&#8217;est qu&#8217;il va communiquer comme résolveur DNS sa propre IP et faire travailler DNSmasq, contrairement à LiveBox qui fourni les DNS d&#8217;Orange.<br />
<br />
Pour activer le serveur DHCP de YunoHost il faut éditer le fichier<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/dnsmasq.conf</pre><span class="emoji-tag">&nbsp;</span>mais avant on fait une sauvegarde avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak</pre><span class="emoji-tag">&nbsp;</span>et enfin<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo nano /etc/dnsmasq.conf</pre><span class="emoji-tag">&nbsp;</span>afin de modifier le fichier comme ceci :<br />
<br />
<div class="formatter-container formatter-code code-RUBY"><span class="formatter-title">Code RUBY : </span><div class="formatter-content"><pre style="display:inline;"><pre class="ruby" style="font-family:monospace;">domain<span style="color:#006600; font-weight:bold;">-</span>needed
expand<span style="color:#006600; font-weight:bold;">-</span>hosts
&nbsp;
<span style="color:#008000; font-style:italic;"># listen-address=127.0.0.1 # On veut écouter aussi les machines de notre LAN</span>
resolv<span style="color:#006600; font-weight:bold;">-</span>file=<span style="color:#006600; font-weight:bold;">/</span>etc<span style="color:#006600; font-weight:bold;">/</span>resolv.<span style="color:#9900CC;">dnsmasq</span>.<span style="color:#9900CC;">conf</span>
&nbsp;
cache<span style="color:#006600; font-weight:bold;">-</span>size=<span style="color:#006666;">2048</span> <span style="color:#008000; font-style:italic;"># Nombre d'entrées DNS max à garder en cache</span>
bogus<span style="color:#006600; font-weight:bold;">-</span>priv
dhcp<span style="color:#006600; font-weight:bold;">-</span>range=192.168.1.10,192.168.1.50,255.255.255.0,24h <span style="color:#008000; font-style:italic;"># Active le serveur DHCP,</span>
<span style="color:#008000; font-style:italic;"># celui-ci fournira des adresses IP entre 192.168.1.10 et 192.168.1.50 aux machines du réseau</span>
dhcp<span style="color:#006600; font-weight:bold;">-</span>option=option:router,192.168.1.1 <span style="color:#008000; font-style:italic;"># Indique la passerelle de notre réseau</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Seulement si vous gardez la TV d'Orange, il faut récupérer l'adresse MAC du décodeur et la renseigner ici</span>
<span style="color:#008000; font-style:italic;"># Cette ligne dit à DNSmasq de ne pas s'occuper du décodeur TV et de ne pas lui donner d'IP</span>
<span style="color:#008000; font-style:italic;"># C'est la LiveBox qui le fera (voir plus bas)</span>
dhcp<span style="color:#006600; font-weight:bold;">-</span>host=8c:<span style="color:#006666;">10</span>:d4:d7:a7:ad,ignore</pre></pre></div></div><br />
<br />
Il ne faut pas oublier d&#8217;ouvrir le port 67 UDP sur votre serveur pour que le serveur DHCP soit visible sur votre réseau. Nous faisons ça avec la commande<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo yunohost firewall allow UDP 67</pre>.<br />
<br />
Enfin, on relance DNSmasq pour prendre en compte la configuration avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo service dnsmasq restart</pre><span class="emoji-tag">&nbsp;</span>et on regarde que tout se passe bien avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo service dnsmasq status</pre>.<br />
<br />
À partir de maintenant votre serveur DHCP doit être fonctionnel, vous pouvez peut être essayer sur une autre machine dans vos paramètres réseau en demandant de renouveler le bail DHCP et en spécifiant l&#8217;adresse IP de votre serveur afin de ne pas utiliser le DHCP de la LiveBox.<br />
<br />
Si vous récupérez bien une adresse IP dans la tranche que vous avez spécifié et que votre connexion internet fonctionne alors on peut passer à la suite et désactiver le serveur DHCP de la LiveBox<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-3-desactiver-le-serveur-dhcp-de-la-livebox">3. Désactiver le serveur DHCP de la LiveBox</h2><br />

<br />
Rien de bien compliquer, connectez vous sur l&#8217;interface admin de votre Box depuis un navigateur en entrant l&#8217;URL 192.168.1.1. Connectez vous en tant qu&#8217;admin et rendez vous dans l&#8217;onglet &#8220;Configuration avancée&#8221; et l&#8217;onglet &#8220;DHCP&#8221;.<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">Si vous n&#8217;utilisez pas la TV d&#8217;orange alors vous pouvez simplement cocher &#8220;désactiver&#8221; et enregistrer</li><li class="formatter-li">Si vous utilisez la TV d&#8217;orange il faut laisser activer le serveur DHCP mais restreindre la plage à seulement une adresse et si possible hors de la plage d&#8217;IP que vous avez donné pour le serveur DHCP de YunoHost. L&#8217;idée en laissant seulement une IP disponible c&#8217;est de permettre au décodeur TV de prendre cette IP là.</li></ul><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-4-verification-du-fonctionnement-de-dnsmasq">4. Vérification du fonctionnement de DNSmasq</h2><br />

<br />
Maintenant votre serveur DHCP et resolveur DNS perso de YunoHost devrait fonctionner correctement. Pour tester tout ça il vous suffit sur une de vos machines de la déconnecter du réseau et de la reconnecter pour qu&#8217;elle interroge le serveur DHCP de YunoHost. Si tout va bien elle devrait récupérer une adresse IP de l&#8217;intervalle que vous avez défini dans<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/dnsmasq.conf</pre><span class="emoji-tag">&nbsp;</span>et votre connexion internet devrait fonctionner.<br />
<br />
Pour vous assurer que le résolveur DNS utilisé est bien celui de YunoHost faites un petit<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">dig www.google.fr</pre><span class="emoji-tag">&nbsp;</span>dans votre shell ; le serveur indiqué devrait être l&#8217;adresse IP de votre serveur YunoHost.<br />
<br />
Mais pour l&#8217;instant, si dans votre navigateur vous essayez d&#8217;accéder à votre interface YunoHost via votre domaine principal cela ne fonctionne pas. Tout simplement parce que DNSmasq retourne à votre machine votre adresse IP publique. Il va falloir modifier la config de DNSmasq pour qu&#8217;il vous retourne l&#8217;adresse IP locale de votre serveur et non pas l&#8217;adresse IP publique.<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-5-ajouter-vos-domaines-a-la-config-de-dnsmasq">5. Ajouter vos domaines à la config de DNSmasq</h2><br />

<br />
Pour chacun de vos domaines il va falloir modifier le fichier qui correspond dans le dossier<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/dnsmasq.d</pre><span class="emoji-tag">&nbsp;</span>comme par exemple le fichier<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/dnsmasq.d/toto.fr</pre><span class="emoji-tag">&nbsp;</span>indiqué ici :<br />
<br />
<div class="formatter-container formatter-code code-INI"><span class="formatter-title">Code INI : </span><div class="formatter-content"><pre style="display:inline;"><pre class="ini" style="font-family:monospace;"># address=/toto.fr/80.80.80.80 # On remplace la ligne avec notre IP publique
address=/toto.fr/192.168.1.2 # par l'IP locale de notre serveur YunoHost
txt-record=toto.fr,"v=spf1 mx a -all"
mx-host=toto.fr,toto.fr,5
srv-host=_xmpp-client._tcp.toto.fr,toto.fr,5222,0,5
srv-host=_xmpp-server._tcp.toto.fr,toto.fr,5269,0,5</pre></pre></div></div><br />
<br />
Après un<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo service dnsmasq restart</pre><span class="emoji-tag">&nbsp;</span>vous devriez pouvoir accéder sur chacune de vos machines à votre interface Yunohost en utilisant votre nom de domaine comme URL.<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-6-mise-en-place-et-renouvellement-des-certificats-letes-encrypt">6. Mise en place et renouvellement des certificats Let’s Encrypt</h2><br />

<br />
Cependant il reste encore un problème. Lorsque vous mettez en place un certificat pour vos noms de domaine vous obtenez le message suivant :<br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;">Attention : Expiration <span style="color: #c20cb9; font-weight: bold;">du</span> délai lors de la tentative <span style="color: #c20cb9; font-weight: bold;">du</span> serveur de se contacter
via HTTP en utilisant son adresse IP publique <span style="color: #7a0874; font-weight: bold;">&#40;</span>domaine toto.fr avec l’IP
xx.xxx.xxx.xxx<span style="color: #7a0874; font-weight: bold;">&#41;</span>. Vous rencontrez peut-être un problème d’hairpinning ou
alors le pare-feu<span style="color: #000000; font-weight: bold;">/</span>routeur en amont de votre serveur est mal configuré.</pre></pre></div></div><br />
<br />
En effet, le NAT loopback de la Livebox ne fonctionne pas, donc quand YunoHost interroge votre IP publique sur le port 80 celle-ci n&#8217;est pas capable de renvoyer l&#8217;IP locale de votre serveur.<br />
<br />
Le seul moyen que j&#8217;ai trouvé pour le moment est d&#8217;utiliser iptables afin de transférer tout le trafic de votre IP publique vers l&#8217;IP locale de votre serveur YunoHost.<br />
<br />
Dans un premier temps il faut activer l&#8217;ip forwarding en éditant le fichier<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/sysctl.conf</pre><span class="emoji-tag">&nbsp;</span>avec un<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo nano /etc/sysctl.conf</pre><span class="emoji-tag">&nbsp;</span>et dé-commenter la ligne<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">net.ipv4.ip_forward</pre><span class="emoji-tag">&nbsp;</span>afin d&#8217;avoir<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">net.ipv4.ip_forward=1</pre>.<br />
<br />
Maintenant il faut ajouter une règle Iptables afin de maintenir la redirection d&#8217;IP même si l&#8217;IP publique change.<br />
Pour cela j&#8217;utilise Cron afin de vérifier toutes les 15 minutes si mon IP a changé et modifier la redirection si besoin.<br />
<br />
Dans un premier temps je créé un dossier dans mon home afin d&#8217;accueillir mon script :<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">mkdir ~/ynh_hairpinning_fix</pre>.<br />
Enfin je créé mon script avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">nano ~/ynh_hairpinning_fix/ynh_hairpinning_fix.sh</pre><span class="emoji-tag">&nbsp;</span>et voici son contenu :<br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/env bash</span>
&nbsp;
<span style="color: #007800;">local_ip</span>=<span style="color: #ff0000;">"192.168.1.2"</span>
<span style="color: #007800;">last_ip_file</span>=<span style="color: #ff0000;">"/home/admin/ynh_hairpinning_fix/last_ip.txt"</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> delete_previous_iptables_rule <span style="color: #7a0874; font-weight: bold;">&#123;</span>
<span style="color: #007800;">rule_number</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>iptables <span style="color: #660033;">-L</span> <span style="color: #660033;">--line-numbers</span> <span style="color: #660033;">-t</span> nat <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">'ynh_hairpinning_fix'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $1}'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #007800;">cmd</span>=<span style="color: #ff0000;">"/sbin/iptables -t nat -D OUTPUT <span style="color: #007800;">$rule_number</span>"</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"<span style="color: #007800;">$cmd</span>"</span>
<span style="color: #7a0874; font-weight: bold;">eval</span> <span style="color: #007800;">$cmd</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> add_iptables_rule <span style="color: #7a0874; font-weight: bold;">&#123;</span>
<span style="color: #007800;">cmd</span>=<span style="color: #ff0000;">"/sbin/iptables -t nat -A OUTPUT -d <span style="color: #007800;">$public_ip</span> -j DNAT --to-destination <span style="color: #007800;">$local_ip</span> -m comment --comment <span style="color: #000099; font-weight: bold;">\"</span>ynh_hairpinning_fix<span style="color: #000099; font-weight: bold;">\"</span>"</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"<span style="color: #007800;">$cmd</span>"</span>
<span style="color: #7a0874; font-weight: bold;">eval</span> <span style="color: #007800;">$cmd</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Get current public IP</span>
<span style="color: #007800;">public_ip</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">dig</span> +short myip.opendns.com <span style="color: #000000; font-weight: bold;">@</span>resolver1.opendns.com<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"Current public IP: <span style="color: #007800;">$public_ip</span>"</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Check if the iptables rule exists, if not,</span>
<span style="color: #666666; font-style: italic;"># just add the rule and save the current public IP</span>
<span style="color: #007800;">iptables_save</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>iptables-save<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$iptables_save</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #000000; font-weight: bold;">*</span><span style="color: #ff0000;">"ynh_hairpinning_fix"</span><span style="color: #000000; font-weight: bold;">*</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>;
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"Iptables rule does not exist, let's add it"</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Add iptables rule</span>
add_iptables_rule
&nbsp;
<span style="color: #666666; font-style: italic;"># Save current public ip</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"<span style="color: #007800;">$public_ip</span>"</span> <span style="color: #000000; font-weight: bold;">></span> <span style="color: #007800;">$last_ip_file</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># If the iptables rule exists,</span>
<span style="color: #666666; font-style: italic;"># check if the public IP has changed</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">"<span style="color: #007800;">$last_ip_file</span>"</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #007800;">previous_ip</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">head</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">1</span> <span style="color: #007800;">$last_ip_file</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">"<span style="color: #007800;">$previous_ip</span>"</span> = <span style="color: #ff0000;">"<span style="color: #007800;">$public_ip</span>"</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>;
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"Public IP unchanged, nothing to do"</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"Public IP changed, let's modify iptables rule"</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"Previous public IP: <span style="color: #007800;">$previous_ip</span>"</span>
delete_previous_iptables_rule
add_iptables_rule
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"<span style="color: #007800;">$public_ip</span>"</span> <span style="color: #000000; font-weight: bold;">></span> <span style="color: #007800;">$last_ip_file</span>
<span style="color: #000000; font-weight: bold;">fi</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"Previous public IP unkown, let's modify iptables rule"</span>
delete_previous_iptables_rule
add_iptables_rule
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"<span style="color: #007800;">$public_ip</span>"</span> <span style="color: #000000; font-weight: bold;">></span> <span style="color: #007800;">$last_ip_file</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></pre></div></div><br />
<br />
N&#8217;oubliez pas d&#8217;adapter la variable<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">local_ip</pre><span class="emoji-tag">&nbsp;</span>en mettant l&#8217;IP locale de votre YunoHost. Et enfin, rendez votre script exécutable avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">chmod +x ~/ynh_hairpinning_fix/ynh_hairpinning_fix.sh</pre>.<br />
Vous pouvez maintenant le lancer une première fois avec la commande<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo ~/ynh_hairpinning_fix/ynh_hairpinning_fix.sh</pre><span class="emoji-tag">&nbsp;</span>(important de se placer root car on utilise ici Iptables).<br />
Maintenant vous pouvez vérifier que la règle a bien été ajouté dans Iptables avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo iptables -L --line-numbers -t nat</pre>.<br />
<br />
Il ne reste plus qu&#8217;à ajouter ce script à Cron pour vérifier régulièrement que si votre IP publique change.<br />
Faite un<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo crontab -e</pre><span class="emoji-tag">&nbsp;</span>afin d&#8217;éditer vos entrée Cron root et ajoutez la ligne suivante :<br />
<pre style="display:inline;">*/15 * * * * /home/admin/ynh_hairpinning_fix/ynh_hairpinning_fix.sh</pre>.<br />
<br />
Redémarrez votre YunoHost et essayez de renouveler votre certificat ; normalement le warning a disparu !<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-conclusion">Conclusion</h2><br />

<br />
Voilà tout !<br />
<br />
J&#8217;espère que les explications sont assez claires et aussi que ce tuto peut servir à d&#8217;autre personnes (je ne sais pas pour les autres box comme Bbox ou encore SFR, peut être que ça peut servir, ou même chez nos amis Belges avec Proximus?).<br />
<br />
Si d&#8217;autres clients Orange sont dans le même cas que je moi je veux bien vos trucs et astuces pour résoudre ce problème là, peut être qu&#8217;il y a plus simple et plus efficace ?<br />
<br />
Et surtout merci à la communauté YunoHost<span class="emoji-tag">&nbsp;</span><img src="https://forum.yunohost.org/images/emoji/twitter/heart_eyes.png" alt="heart_eyes" /><br />
<br />
1)<br />
<br />
voilà, j&#8217;ai fais comme suggéré un script qui récupère l&#8217;ip publique, et la stock dans une varible. J&#8217;ai donc:<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">un fichier /bin/iptable-berrypi (je n&#8217;étais pas très inspiré pour le nom<span class="emoji-tag">&nbsp;</span><img src="https://forum.yunohost.org/images/emoji/twitter/blush.png" alt="blush" />)</li></ul><br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;">    <span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #007800;">MYIPPUB</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>curl <span style="color: #660033;">-s</span> checkip.dyndns.org <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/.*Current IP Address: //'</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/<.*$//'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>iptables <span style="color: #660033;">-t</span> nat <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-d</span> <span style="color: #007800;">$MYIPPUB</span> <span style="color: #660033;">-j</span> DNAT <span style="color: #660033;">--to-destination</span> 192.168.1.2
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></pre></div></div><br />
<br />
(fait à l&#8217;aide de ce post :<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://askubuntu.com/questions/95910/command-for-determining-my-public-ip">https://askubuntu.com/questions/95910/command-for-determining-my-public-ip<span class="emoji-tag">&nbsp;</span>3</a><br />
et ce post<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://www.commentcamarche.net/forum/affich-4755454-shell-stocker-le-resultat-d-une-commande">https://www.commentcamarche.net/forum/affich-4755454-shell-stocker-le-resultat-d-une-commande<span class="emoji-tag">&nbsp;</span>1</a><span class="emoji-tag">&nbsp;</span>)<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">et ensuite je fais<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo crontab -e</pre><span class="emoji-tag">&nbsp;</span>et j&#8217;ajoute le ligne<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">@reboot /bin/iptable-berrypi</pre></li></ul><br />
<br />
Merci beaucoup pour cette solution en tout cas, j&#8217;aurais été bien embêté sans ce tuto<span class="emoji-tag">&nbsp;</span><img src="https://forum.yunohost.org/images/emoji/twitter/wink.png" alt="wink" /><br />
<br />
2)<br />
<br />
De mon coté je viens (enfin) d&#8217;intégrer ta méthode à mon YunoHost, voici mon script<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">fake_loopback.sh</pre><span class="emoji-tag">&nbsp;</span>au cas ou :<br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/env bash</span>
&nbsp;
<span style="color: #007800;">public_ip</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">dig</span> +short myip.opendns.com <span style="color: #000000; font-weight: bold;">@</span>resolver1.opendns.com<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>iptables <span style="color: #660033;">-t</span> nat <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-d</span> <span style="color: #ff0000;">"<span style="color: #007800;">$public_ip</span>"</span> <span style="color: #660033;">-j</span> DNAT <span style="color: #660033;">--to-destination</span> 192.168.1.2</pre></pre></div></div><br />
<br />
et mon entrée crontab (bien faire<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo crontab -e</pre><span class="emoji-tag">&nbsp;</span>et pas<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">crontab -e</pre><span class="emoji-tag">&nbsp;</span>pour être sûr d&#8217;étirer le crontab de root et pas de l&#8217;user)<br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">@</span>reboot <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>admin<span style="color: #000000; font-weight: bold;">/</span>fake_loopback.sh</pre></pre></div></div><br />
<br />
3)<br />
<br />
Bonjour,<br />
D&#8217;abord merci pour ce tuto qui fonctionne encore aujourd&#8217;hui .<br />
Moi aussi j&#8217;avais ce problème d&#8217;accès au serveur depuis mon réseau local.<br />
Mon modem-routeur est un D-link DSL-2640B, car je suis chez FDN qui ne fourni pas de box.<br />
<br />
Information sur la version de YNH :<br />
<br />
<div class="formatter-container formatter-code code-YAML"><span class="formatter-title">Code YAML : </span><div class="formatter-content"><pre style="display:inline;"><pre class="yaml" style="font-family:monospace;"># yunohost -v
yunohost:
repo: stable
version: 4.3.6.2
yunohost-admin:
repo: testing
version: 4.3.4.1
moulinette:
repo: stable
version: 4.3.3.1
ssowat:
repo: stable
version: 4.3.3.1</pre></pre></div></div><br />
<br />
Ce que j&#8217;ai fait pour résoudre :<br />
<br />
<strong>1. Attribution d&#8217;une IP fixe au serveur YunoHost</strong><br />
J&#8217;avais déjà assigné une IPv4 fixe à mon YNH.<br />
<br />
<strong>2. Activer le serveur DHCP de DNSmasq</strong><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">Modifié le<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/dnsmasq.conf</pre><span class="emoji-tag">&nbsp;</span>comme ceci :</li></ul><br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;">domain-needed
expand-hosts
&nbsp;
<span style="color: #666666; font-style: italic;"># listen-address=127.0.0.1 # On veut écouter aussi les machines de notre LAN</span>
resolv-file=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>resolv.dnsmasq.conf
&nbsp;
cache-size=<span style="color: #000000;">2048</span> <span style="color: #666666; font-style: italic;"># Nombre d'entrées DNS max à garder en cache</span>
bogus-priv
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,24h <span style="color: #666666; font-style: italic;"># Active le serveur DHCP,</span>
<span style="color: #666666; font-style: italic;"># celui-ci fournira des adresses IP entre 192.168.1.100 et 192.168.1.200 aux machines du réseau</span>
dhcp-option=option:router,192.168.1.1 <span style="color: #666666; font-style: italic;"># Indique la passerelle de notre réseau</span></pre></pre></div></div><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">Ouvert le port 67 UDP avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo yunohost firewall allow UDP 67</pre></li><li class="formatter-li">Relancer DNSmasq avec<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo service dnsmasq restart</pre></li></ul><br />
<br />
<strong>3. Désactiver le serveur DHCP du D-link DSL-2640B</strong><br />
A partir de l&#8217;interface web en 192.168.1.1.<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">Dans &#8220;Configuration de réseau local&#8221; : décocher &#8220;Activer le serveur DHCP&#8221;</li><li class="formatter-li">Dans &#8220;Ajouter un DHCP statique&#8221; :<br />
Cocher &#8220;Activer&#8221;<br />
Renseigner les champs Nom de ordi, Adresse IP et Adresse MAC (récupérés avec un<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">ip address</pre>)</li><li class="formatter-li">&#8220;Enregistrer&#8221; : le serveur DHCP apparaît alors dans la &#8220;Liste des DHCP statiques&#8221;</li><li class="formatter-li">&#8220;Enregistrer les paramètres&#8221; le D-link DSL-2640B se réinitialise.</li></ul><br />
<br />
<strong>4. Vérification du fonctionnement de DNSmasq</strong><br />
En effet, une machine faisant appel au service DHCP reçoit bien une IP dans la plage spécifier dans<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/dnsmasq.conf</pre><span class="emoji-tag">&nbsp;</span>et comme Primary DNS l&#8217;IP statique du YNH.<br />
Par contre, pour les machines configurées en IP fixe j&#8217;ai du renseigner le serveur DNS avec l&#8217;IP du YNH.<br />
J&#8217;ai maintenant accès au YNH depuis toutes les machines du réseau local par son domain.tld.<br />
<br />
<strong>5. Ajouter vos domaines à la config de DNSmasq</strong><br />
Un fichier<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">domain.tld</pre><span class="emoji-tag">&nbsp;</span>était déjà présent dans<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">/etc/dnsmasq.d</pre>, la ligne<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">address=</pre><span class="emoji-tag">&nbsp;</span>n&#8217;y figure pas mais par contre 4 lignes<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">interface-name=</pre>.<br />
Ça fonctionne ainsi je n&#8217;ai donc rien modifié.<br />
<br />
<strong>6. Mise en place et renouvellement des certificats Let&#8217;s Encrypt</strong><br />
J&#8217;ai d&#8217;abord tenté un &#8220;renouveler manuellement maintenant&#8221; et la validité du certificat est bien passée à 89 jours.<br />
Ça fonctionne ainsi je n&#8217;ai donc rien modifié.<br />
<br />
<strong>Conclusion</strong><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">Le tuto est toujours d&#8217;actualité, malgré les années.</li><li class="formatter-li">Les points 5. et 6. semblent être pris en charge dans l&#8217;installation de YNH.</li><li class="formatter-li">Ce tuto pourrait être intégré à la documentation.</li></ul><br />
<br />
Merci à toute l&#8217;équipe.<span class="emoji-tag">&nbsp;</span><img src="https://forum.yunohost.org/images/emoji/twitter/ok_hand.png" alt="ok_hand" />]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[Configuration d’un hotspot filaire]]></title>
                <link>https://wiki2.softcloud.fr/wiki/configuration-deun-hotspot-filaire</link>
                <guid>https://wiki2.softcloud.fr/wiki/configuration-deun-hotspot-filaire</guid>
                <description><![CDATA[<span class="message-helper bgc success"><a class="offload" href="https://forum.yunohost.org/t/resolu-configuration-dun-hotspot-filaire/5048">https://forum.yunohost.org/t/resolu-configuration-dun-hotspot-filaire/5048</a></span><br />
<br />
Les fichiers de configuration nécessaires au bon fonctionnement du hotspot filaire sont :<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">/etc/network/interfaces</li></ul><br />
<br />
<blockquote class="formatter-container formatter-blockquote"><span class="formatter-title">Citation :</span><div class="formatter-content">auto lo<br />
iface lo inet loopback<br />
<br />
auto eth0<br />
allow-hotplug eth0<br />
iface eth0 inet dhcp<br />
post-up ip a a fe80::42:babe/128 dev eth0<br />
<br />
auto eth1<br />
allow-hotplug eth1<br />
iface eth1 inet static<br />
address 10.0.243.1<br />
netmask 255.255.255.0<br />
<br />
iface eth1 inet6 static<br />
address 2a00:5881:8118:1700::42<br />
netmask 64<br />
post-up ip a a fe80::42:babe/128 dev eth1<br />
<br />
auto usb0<br />
allow-hotplug usb0<br />
iface usb0 inet dhcp</div></blockquote><br />
<br />
Je me suis arrangé pour &#8220;copier&#8221; la configuration wlan0 du hotspot wifi en remplaçant 10.0.242.x par 10.0.243.x<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">/etc/dnsmasq.d/dhcpdv6-eth1.conf</li></ul><br />
<br />
<blockquote class="formatter-container formatter-blockquote"><span class="formatter-title">Citation :</span><div class="formatter-content">interface=eth1<br />
listen-address=2a00:5881:8118:1700::42<br />
dhcp-range=2a00:5881:8118:1700::,slaac,64,4h<br />
dhcp-option=option6:dns-server, [2001:913::8],[2001:910:800::12]</div></blockquote><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">/etc/dnsmasq.d/dhcpdv4-eth1.conf</li></ul><br />
<br />
<blockquote class="formatter-container formatter-blockquote"><span class="formatter-title">Citation :</span><div class="formatter-content">interface=eth1<br />
listen-address=10.0.243.1<br />
dhcp-range=eth1,10.0.243.10,10.0.243.100,4h<br />
dhcp-option=option:dns-server, 80.67.188.188,80.67.169.12<br />
dhcp-authoritative<br />
bind-interfaces</div></blockquote><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">/etc/resolv.dnsmasq.conf</li></ul><br />
<br />
<blockquote class="formatter-container formatter-blockquote"><span class="formatter-title">Citation :</span><div class="formatter-content">nameserver 89.234.141.66<br />
nameserver 2a00:5881:8100:1000::3</div></blockquote><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">/etc/dnsmasq.conf</li></ul><br />
<br />
<blockquote class="formatter-container formatter-blockquote"><span class="formatter-title">Citation :</span><div class="formatter-content">domain-needed<br />
expand-hosts<br />
<br />
listen-address=127.0.0.1<br />
resolv-file=/etc/resolv.dnsmasq.conf<br />
cache-size=256</div></blockquote><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">/usr/local/bin/wiredgw</li></ul><br />
<br />
<blockquote class="formatter-container formatter-blockquote"><span class="formatter-title">Citation :</span><div class="formatter-content">#!/bin/bash<br />
<br />
case &#8220;${1}&#8221; in<br />
start)<br />
# ipv6<br />
ip6tables -w -I FORWARD -i tun0 -o eth1 -j DROP<br />
ip6tables -w -I FORWARD -i tun0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT<br />
ip6tables -w -I FORWARD -i eth1 -o tun0 -j ACCEPT<br />
#ip6tables<span class="emoji-tag">&nbsp;</span>-w -I FORWARD -i eth1 -o wlan0 -j ACCEPT<br />
#ip6tables<span class="emoji-tag">&nbsp;</span>-w -I FORWARD -i wlan0 -o eth1 -j ACCEPT<br />
ip6tables -w -I INPUT -i eth1 -j ACCEPT<br />
ip6tables -w -I OUTPUT -o eth1 -j ACCEPT<br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;">  <span style="color: #666666; font-style: italic;">#IPv4</span>
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-I</span> FORWARD <span style="color: #660033;">-i</span> tun0 <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-j</span> DROP
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-I</span> FORWARD <span style="color: #660033;">-i</span> tun0 <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-m</span> conntrack <span style="color: #660033;">--ctstate</span> ESTABLISHED,RELATED <span style="color: #660033;">-j</span> ACCEPT
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-I</span> FORWARD <span style="color: #660033;">-i</span> eth1 <span style="color: #660033;">-o</span> tun0 <span style="color: #660033;">-j</span> ACCEPT
<span style="color: #666666; font-style: italic;">#iptables -w -I FORWARD -i eth1 -o wlan0 -j ACCEPT</span>
<span style="color: #666666; font-style: italic;">#iptables -w -I FORWARD -i wlan0 -o eth1 -j ACCEPT</span>
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-I</span> INPUT <span style="color: #660033;">-i</span> eth1 <span style="color: #660033;">-j</span> ACCEPT
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-I</span> OUTPUT <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-j</span> ACCEPT
<span style="color: #000000; font-weight: bold;">;;</span>
stop<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #666666; font-style: italic;"># ipv6</span>
ip6tables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> FORWARD <span style="color: #660033;">-i</span> tun0 <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-j</span> DROP
ip6tables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> FORWARD <span style="color: #660033;">-i</span> tun0 <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-m</span> conntrack <span style="color: #660033;">--ctstate</span> ESTABLISHED,RELATED <span style="color: #660033;">-j</span> ACCEPT
ip6tables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> FORWARD <span style="color: #660033;">-i</span> eth1 <span style="color: #660033;">-o</span> tun0 <span style="color: #660033;">-j</span> ACCEPT
<span style="color: #666666; font-style: italic;">#ip6tables -w -D FORWARD -i eth1 -o wlan0 -j ACCEPT</span>
<span style="color: #666666; font-style: italic;">#ip6tables -w -D FORWARD -i wlan0 -o eth1 -j ACCEPT</span>
ip6tables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> INPUT <span style="color: #660033;">-i</span> eth1 <span style="color: #660033;">-j</span> ACCEPT
ip6tables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> OUTPUT <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-j</span> ACCEPT
&nbsp;
<span style="color: #666666; font-style: italic;"># IPv4</span>
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> FORWARD <span style="color: #660033;">-i</span> tun0 <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-j</span> DROP
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> FORWARD <span style="color: #660033;">-i</span> tun0 <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-m</span> conntrack <span style="color: #660033;">--ctstate</span> ESTABLISHED,RELATED <span style="color: #660033;">-j</span> ACCEPT
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> FORWARD <span style="color: #660033;">-i</span> eth1 <span style="color: #660033;">-o</span> tun0 <span style="color: #660033;">-j</span> ACCEPT
<span style="color: #666666; font-style: italic;">#iptables -w -D FORWARD -i eth1 -o wlan0 -j ACCEPT</span>
<span style="color: #666666; font-style: italic;">#iptables -w -D FORWARD -i wlan0 -o eth1 -j ACCEPT</span>
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> INPUT <span style="color: #660033;">-i</span> eth1 <span style="color: #660033;">-j</span> ACCEPT
iptables <span style="color: #660033;">-w</span> <span style="color: #660033;">-D</span> OUTPUT <span style="color: #660033;">-o</span> eth1 <span style="color: #660033;">-j</span> ACCEPT
<span style="color: #000000; font-weight: bold;">;;</span>
<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">"Usage: $0 {start|stop}"</span>
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">;;</span></pre></pre></div></div><br />
<br />
esac</div></blockquote><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">/etc/systemd/system/wiredgw.service</li></ul><br />
<br />
<blockquote class="formatter-container formatter-blockquote"><span class="formatter-title">Citation :</span><div class="formatter-content">[Unit]<br />
Description=Gateway for wire link<br />
Requires=network.target<br />
After=ynh-vpnclient.service<br />
Wants=ynh-vpnclient.service<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/usr/local/bin/wiredgw start<br />
ExecStop=/usr/local/bin/wiredgw stop<br />
RemainAfterExit=yes<br />
<br />
[Install]<br />
WantedBy=multi-user.target</div></blockquote>]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[Remplacer le Wi-Fi par l'Ethernet sur la brique internet]]></title>
                <link>https://wiki2.softcloud.fr/wiki/remplacer-le-wi-fi-par-l-ethernet-sur-la-brique-internet</link>
                <guid>https://wiki2.softcloud.fr/wiki/remplacer-le-wi-fi-par-l-ethernet-sur-la-brique-internet</guid>
                <description><![CDATA[<span class="message-helper bgc notice">https://wiki.labriqueinter.net/doku.php%3Fid=howto:parametrer_une_brique_avec_un_connecteur_usb-ethernet_au_lieu_d_un_connecteur_usb-wifi</span><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-remplacer-le-wi-fi-par-l-ethernet-sur-la-brique-internet">Remplacer le Wi-Fi par l'Ethernet sur la brique internet</h2><br />

<br />
<img src="https://wiki.labriqueinter.net/lib/exe/fetch.php?media=howto:wifi2ethernet.jpg" alt="fetch" /><br />
<br />
<strong>Matériel utilisé</strong><br />
<br />
<ul class="formatter-ul"><li class="formatter-li">Carte Olimex LIME2</li><li class="formatter-li">Micro SD HC 16 Go avec l'image labriqueinternet_A20LIME2_2016-05-16_jessie.img</li><li class="formatter-li">Machine sous Linux Debian 8.</li><li class="formatter-li"><a class="offload" href="https://www.olimex.com/Products/USB-Modules/USB-ETHERNET-AX88772B/">Clé USB-Ethernet-AX88772B (vendue chez Olimex)</a></li><li class="formatter-li">Réseau domestique avec serveur DHCP configuré sur la box opérateur</li></ul><br />
<br />
<strong>Procédure</strong><br />
<br />
Pour remplacer le pont USB-Wi-Fi par un pont USB-Ethernet, on va réaliser un paramétrage en 2 grandes phases:<br />
<br />
<ul class="formatter-ul"><li class="formatter-li">une première phase où l'on va déclarer le nouveau port ethernet eth1 de façon identique au premier eth0</li><li class="formatter-li">une deuxième phase où l'on va paramétrer un serveur DHCP qui va permettre de distribuer des adresses IP à différentes machines connectées à l'interface eth1 via un matériel réseau de type switch/commutateur ethernet.</li></ul><br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-phase-a-creation-du-port-eth1-pour-la-cle-usb-ethernet">Phase A - Création du port eth1 pour la clé USB-Ethernet</h3><br />

<br />
<strong>0<span class="emoji-tag">&deg;</span>- Déconnecter le pont USB-Wi-Fi de la brique éteinte</strong><br />
<br />
<strong>1<span class="emoji-tag">&deg;</span>- Allumer la brique, connectée sur le réseau local sur l'interface eth0 d'origine</strong><br />
<br />
<strong>2<span class="emoji-tag">&deg;</span>- Se connecter en ssh en root à la brique</strong><br />
<br />
Depuis une autre machine (ici linux) qui va vous permettre de faire le paramétrage, on accède au shell de la brique via SSH. On peut aussi le faire depuis une machine Windows à l'aide de l'utilitaire<span class="emoji-tag">&nbsp;</span><a class="offload" href="http://www.putty.org/">PuTTY</a>.<br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@sexmachine:~# ssh root@192.168.1.27</pre></pre></div></div><br />
<br />
<strong>3<span class="emoji-tag">&deg;</span>- On scrute la fin du fichier /var/log/syslog (optionnel)</strong><br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:~# tail-f /var/log/syslog</pre></pre></div></div><br />
<br />
<strong>4<span class="emoji-tag">&deg;</span>- On insère la clé USB-Ethernet sur un port USB libre de la brique</strong><br />
<br />
Les lignes suivantes apparaissent dans le syslog, aucune erreur n'apparaît, ouf!<br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">Jul 20 21:35:37 olinux kernel: [ 3144.236949] usb 1-1: new high-speed USB device number 2 using ehci-platform
Jul 20 21:35:38 olinux kernel: [ 3144.381972] usb 1-1: New USB device found, idVendor=0b95, idProduct=772b
Jul 20 21:35:38 olinux kernel: [ 3144.381995] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 20 21:35:38 olinux kernel: [ 3144.382006] usb 1-1: Product: AX88772C
Jul 20 21:35:38 olinux kernel: [ 3144.382016] usb 1-1: Manufacturer: ASIX Elec. Corp.
Jul 20 21:35:38 olinux kernel: [ 3144.382026] usb 1-1: SerialNumber: 00000A
Jul 20 21:35:38 olinux kernel: [ 3145.217213] asix 1-1:1.0 eth1: register 'asix' at usb-1c14000.usb-1, ASIX AX88772B USB 2.0 Ethernet, 00:00:10:00:61:76
Jul 20 21:35:38 olinux kernel: [ 3145.217415] usbcore: registered new interface driver asix</pre></pre></div></div><br />
<br />
On voit aussi que<span class="emoji-tag">&nbsp;</span><strong>eth1</strong><span class="emoji-tag">&nbsp;</span>est le nom de l'interface proposé par défaut. A mémoriser pour la suite.<br />
<br />
<strong>5<span class="emoji-tag">&deg;</span>- Installation de usbutils pour avoir lsusb (optionnel)</strong><br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:~# apt-get install usbutils</pre></pre></div></div><br />
<br />
<strong>6<span class="emoji-tag">&deg;</span>- On voit ce qui est sur les ports USB avec lsusb (optionnel)</strong><br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:~# lsusb
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0b95:772b ASIX Electronics Corp. AX88772B
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</pre></pre></div></div><br />
<br />
La clé est donc bien reconnue comme un device USB.<br />
<br />
<strong>7<span class="emoji-tag">&deg;</span>- Paramétrage de eth1 dans le fichier /etc/network/interfaces</strong><br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:~# nano /etc/network/interfaces</pre></pre></div></div><br />
<br />
Ajouter les lignes suivantes à la fin du fichier<br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">auto eth1
allow-hotplug eth1
iface eth1 inet dhcp</pre></pre></div></div><br />
<br />
<strong>8<span class="emoji-tag">&deg;</span>- Redémarrer la brique</strong><br />
<br />
C'est un peu bourrin, mais ça marche.<br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:~# reboot</pre></pre></div></div><br />
<br />
<strong>9<span class="emoji-tag">&deg;</span>- Une fois la brique relancée se reconnecter en SSH</strong><br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@sexmachine:~# ssh root@192.168.1.27</pre></pre></div></div><br />
<br />
<strong>10<span class="emoji-tag">&deg;</span>- On vérifie que eth1 apparaît bien parmi les interfaces réseau</strong><br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 02:c2:04:c2:a6:e3
inet adr:192.168.1.27  Bcast:192.168.1.255  Masque:255.255.255.0
adr inet6: fe80::42:babe/128 Scope:Lien
adr inet6: fe80::c2:4ff:fec2:a6e3/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:90 errors:0 dropped:0 overruns:0 frame:0
TX packets:134 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:11018 (10.7 KiB)  TX bytes:18229 (17.8 KiB)
Interruption:117
&nbsp;
eth1      Link encap:Ethernet  HWaddr 00:00:10:00:61:76
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
&nbsp;
lo        Link encap:Boucle locale
inet adr:127.0.0.1  Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)</pre></pre></div></div><br />
<br />
<strong>11<span class="emoji-tag">&deg;</span>- On branche la clé USB-Ethernet au réseau local</strong><br />
<br />
On fait ce test pour vérifier que l'interface<span class="emoji-tag">&nbsp;</span><strong>eth1</strong><span class="emoji-tag">&nbsp;</span>récupère bien une adresse depuis le DHCP, et donc qu'elle est configurée de la même façon que<span class="emoji-tag">&nbsp;</span><strong>eth0</strong>. On vérifiera aussi que le paramétrage IPv6 est aussi valide.<br />
<br />
<strong>12<span class="emoji-tag">&deg;</span>- Nouveau ifconfig</strong><br />
<br />
Ca marche! Notre interface réseau<span class="emoji-tag">&nbsp;</span><strong>eth1</strong><span class="emoji-tag">&nbsp;</span>a bien récupéré une adresse IP depuis le DHCP du réseau.<br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:/etc/network# ifconfig
&nbsp;
eth0      Link encap:Ethernet  HWaddr 02:c2:04:c2:a6:e3
inet adr:192.168.1.27  Bcast:192.168.1.255  Masque:255.255.255.0
adr inet6: fe80::42:babe/128 Scope:Lien
adr inet6: fe80::c2:4ff:fec2:a6e3/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:264 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:28827 (28.1 KiB)  TX bytes:10814 (10.5 KiB)
Interruption:117
&nbsp;
eth1      Link encap:Ethernet  HWaddr 00:00:10:00:61:76
inet adr:192.168.1.21  Bcast:192.168.1.255  Masque:255.255.255.0
adr inet6: fe80::200:10ff:fe00:6176/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:134 errors:0 dropped:0 overruns:0 frame:0
TX packets:306 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:16119 (15.7 KiB)  TX bytes:38260 (37.3 KiB)
&nbsp;
lo        Link encap:Boucle locale
inet adr:127.0.0.1  Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)</pre></pre></div></div><br />
<br />
<h4 class="formatter-title wiki-paragraph-4" id="paragraph-fin-de-la-phase-a">Fin de la Phase A</h4><br />

<br />
Ici on a une interface réseau parfaitement fonctionnelle sur la clé USB-Ethernet connectée. Maintenant on va voir comment plusieurs machines du réseau local pourront se connecter à cette interface de façon identique<br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-phase-b-parametrage-du-serveur-dhcp-dnsmasq-sur-eth1">Phase B - Paramétrage du serveur DHCP dnsmasq sur eth1</h3><br />

<br />
<strong>1<span class="emoji-tag">&deg;</span>- Se connecter en ssh en root à la brique</strong><br />
<br />
Si ce n'est déjà fait, on se connecte en SSH sur la brique.<br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@sexmachine:~# ssh root@192.168.1.27</pre></pre></div></div><br />
<br />
<strong>2<span class="emoji-tag">&deg;</span>- On vérifie le paramétrage de dnsmasq</strong><br />
<br />
On affiche toutes les lignes non commentées du fichier de configuration de dnsmasq<br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:~# cat /etc/dnsmasq.conf | grep "^[^#]"</pre></pre></div></div><br />
<br />
La commande ne nous retourne rien, ce qui signifie que dans notre cas, on part d'un fichier de configuration vierge.<br />
<br />
<strong>3<span class="emoji-tag">&deg;</span>- Récupérer l'adresse des serveurs DNS primaire et secondaire</strong><br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">root@olinux:~# cat /etc/resolv.conf</pre></pre></div></div><br />
<br />
<strong>4<span class="emoji-tag">&deg;</span>- Saisir le paramétrage suivant</strong><br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;"># Configuration IPv4
&nbsp;
dhcp-range=eth1,10.0.242.2,10.0.242.254,4h
dhcp-option=option:dns-server,adresse_dns1,adresse_dns2</pre></pre></div></div><br />
<br />
&#8230;en cours de rédaction&#8230;<br />
<br />
<h4 class="formatter-title wiki-paragraph-4" id="paragraph-fin-de-la-phase-b">Fin de la phase B</h4><br />]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[RaspAP Documentation]]></title>
                <link>https://wiki2.softcloud.fr/wiki/raspap-documentation</link>
                <guid>https://wiki2.softcloud.fr/wiki/raspap-documentation</guid>
                <description><![CDATA[]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[RaspAP Documentation Pages]]></title>
                <link>https://wiki2.softcloud.fr/wiki/raspap-documentation-pages</link>
                <guid>https://wiki2.softcloud.fr/wiki/raspap-documentation-pages</guid>
                <description><![CDATA[]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[Overview]]></title>
                <link>https://wiki2.softcloud.fr/wiki/overview</link>
                <guid>https://wiki2.softcloud.fr/wiki/overview</guid>
                <description><![CDATA[<img src="https://user-images.githubusercontent.com/229399/164047475-6d8cf1fd-ec50-4fcc-9d36-f0385f819979.png" alt="164047475-6d8cf1fd-ec50-4fcc-9d36-f0385f819979" /><br />
<br />
Simple AP setup & WiFi management for Debian-based devices<br />
<br />
--- About ---<br />
<br />
RaspAP is feature-rich wireless router software that<span class="emoji-tag">&nbsp;</span><em>just works</em><span class="emoji-tag">&nbsp;</span>on many popular<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/#compatible-operating-systems">Debian-based devices</a>, including the Raspberry Pi. Our popular Quick installer creates a known-good default configuration in minutes on all current Raspberry Pis with onboard wireless.<br />
<br />
--- Quick start ---<br />
<br />
Start with a clean install of the<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://www.raspberrypi.org/software/operating-systems/">latest release of Raspberry Pi OS Lite</a>. Both the 32- and 64-bit release versions are supported. The Raspberry Pi OS Desktop distro is currently<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/faq/#distros">unsupported</a>.<br />
<br />
Tip<br />
<br />
Be sure to use an official power supply with your device. Power supply requirements<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/README.md">differ by Raspberry Pi model</a>. Inadequate voltage is the source of many WiFi issues.<br />
<br />
Update RPi OS to its latest version, including the kernel and firmware, followed by a reboot:<br />
<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">sudo apt-get update
sudo apt-get full-upgrade
sudo reboot</pre></pre></div></div><br />
<br />
Set the WiFi country in raspi-config's<span class="emoji-tag">&nbsp;</span><strong>Localisation Options</strong>:<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">sudo raspi-config</pre>.<br />
<br />
Important<br />
<br />
Failure to perform this step will prevent the RPi from enabling wireless operation. When this happens, you will see the warning<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">Wi-Fi is currently blocked by rfkill</pre><span class="emoji-tag">&nbsp;</span>in the console.<br />
<br />
Install RaspAP from your device's shell prompt:<br />
<br />
<div class="formatter-container formatter-code code-BASH"><span class="formatter-title">Code BASH : </span><div class="formatter-content"><pre style="display:inline;"><pre class="bash" style="font-family:monospace;">curl <span style="color: #660033;">-sL</span> https:<span style="color: #000000; font-weight: bold;">//</span>install.raspap.com <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">bash</span></pre></pre></div></div><br />
<br />
The<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/quick/">Quick installer</a><span class="emoji-tag">&nbsp;</span>will complete the steps in the<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/manual/">manual installation</a><span class="emoji-tag">&nbsp;</span>for you.<br />
<br />
After the reboot at the end of the installation the wireless AP network will be configured as follows:<br />
<br />
<strong>IP address:</strong><span class="emoji-tag">&nbsp;</span>10.3.141.1<br />
<strong>Username:</strong><span class="emoji-tag">&nbsp;</span>admin<br />
<strong>Password:</strong><span class="emoji-tag">&nbsp;</span>secret<br />
<strong>DHCP range:</strong><span class="emoji-tag">&nbsp;</span>10.3.141.50 to 10.3.141.254<br />
<strong>SSID:</strong><span class="emoji-tag">&nbsp;</span><pre style="display:inline;">raspi-webgui</pre><br />
<strong>Password:</strong><span class="emoji-tag">&nbsp;</span>ChangeMe<br />
<br />
Your AP's<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/ap-basics/">basic settings</a><span class="emoji-tag">&nbsp;</span>and many<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/ap-basics/#advanced-options">advanced options</a><span class="emoji-tag">&nbsp;</span>are now ready to be modified by RaspAP.<br />
<br />
Tip<br />
<br />
If this is<span class="emoji-tag">&nbsp;</span><em>not</em><span class="emoji-tag">&nbsp;</span>a clean install or you are configuring a device with a non-standard<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/faq/#integrations">integration</a><span class="emoji-tag">&nbsp;</span>it's strongly recommended to follow the<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/manual/">manual installation</a><span class="emoji-tag">&nbsp;</span>instructions.<br />
<br />
--- Get Insiders ---<br />
<br />
RaspAP is free software, but powered by your support. If you find RaspAP useful for your personal or commercial projects,<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/insiders/#how-to-become-a-sponsor">become a sponsor</a><span class="emoji-tag">&nbsp;</span>and get access to<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/insiders/#whats-in-it-for-me">exclusive features</a><span class="emoji-tag">&nbsp;</span>in the<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/insiders/">Insiders Edition</a>.<br />
<br />
--- Compatible operating systems ---<br />
<br />
RaspAP was originally made for Raspbian, but now also installs on the following Debian-based distros.<br />
<br />
<table class="table formatter-table"><tr class="formatter-table-row"><td class="formatter-table-head">Distribution</td><td class="formatter-table-head">Release</td><td class="formatter-table-head">Architecture</td><td class="formatter-table-head">Support</td></tr><tr class="formatter-table-row"><td class="formatter-table-col">Raspberry Pi OS</td><td class="formatter-table-col">(64-bit) Lite Bookworm</td><td class="formatter-table-col">ARM</td><td class="formatter-table-col">Official</td></tr><tr class="formatter-table-row"><td class="formatter-table-col">Raspberry Pi OS</td><td class="formatter-table-col">(32-bit) Lite Bookworm</td><td class="formatter-table-col">ARM</td><td class="formatter-table-col">Official</td></tr><tr class="formatter-table-row"><td class="formatter-table-col">Raspberry Pi OS</td><td class="formatter-table-col">(64-bit) Lite Bullseye</td><td class="formatter-table-col">ARM</td><td class="formatter-table-col">Official</td></tr><tr class="formatter-table-row"><td class="formatter-table-col">Raspberry Pi OS</td><td class="formatter-table-col">(32-bit) Lite Bullseye</td><td class="formatter-table-col">ARM</td><td class="formatter-table-col">Official</td></tr><tr class="formatter-table-row"><td class="formatter-table-col">Armbian</td><td class="formatter-table-col">23.05 (Suni)</td><td class="formatter-table-col"><a class="offload" href="https://www.armbian.com/rpi4b/">ARM</a></td><td class="formatter-table-col">Official</td></tr><tr class="formatter-table-row"><td class="formatter-table-col">Debian</td><td class="formatter-table-col">Bookworm</td><td class="formatter-table-col">ARM / x86_64</td><td class="formatter-table-col">Beta</td></tr><tr class="formatter-table-row"><td class="formatter-table-col">Ubuntu</td><td class="formatter-table-col">Server 23.04 (Lunar)</td><td class="formatter-table-col">ARM / x86_64</td><td class="formatter-table-col">Beta</td></tr></table><br />
<br />
<img src="https://user-images.githubusercontent.com/229399/115760318-81f03f80-a3a1-11eb-8df5-15ec4aec3e8a.png" alt="115760318-81f03f80-a3a1-11eb-8df5-15ec4aec3e8a" /><br />
<br />
Please note that "supported" is not a guarantee. If you are able to improve support for your preferred distro, we encourage you to<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://docs.raspap.com/#get-involved">actively contribute</a><span class="emoji-tag">&nbsp;</span>to the project.<br />
<br />
--- Get involved ---<br />
<br />
We welcome all users of RaspAP to contribute to the project. This can take the form of<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://github.com/RaspAP/raspap-webgui/issues">issue reports</a>,<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://github.com/RaspAP/raspap-webgui/discussions">discussions</a>, or<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://github.com/RaspAP/raspap-webgui/pulls">pull requests</a>. Developers can get started by following these steps:<br />
<br />
<ol class="formatter-ol"><li class="formatter-li">Fork the project in your account and create a new branch:<span class="emoji-tag">&nbsp;</span><pre style="display:inline;">your-great-feature</pre>.</li><li class="formatter-li">Open an issue in the repository describing the feature contribution you'd like to make.</li><li class="formatter-li">Commit changes in your feature branch.</li><li class="formatter-li">Open a pull request and reference the initial issue in the pull request message.</li></ol><br />
<br />
Find out more about our<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://github.com/RaspAP/raspap-webgui/blob/master/CONTRIBUTING.md">coding style guidelines and recommended tools</a>.<br />
<br />
--- Discussions ---<br />
<br />
Questions or comments about the Quick start? Join the<span class="emoji-tag">&nbsp;</span><a class="offload" href="https://github.com/RaspAP/raspap-webgui/discussions/1331">discussion here</a>.]]></description>
                <pubDate>Sun, 08 Nov 2026 14:23:29 +0100</pubDate>
                
            </item>
		
	</channel>
</rss>
