Hi ha aquest enllaç: Enviar a Kindle
la pàgina d’ajuda de serveis digitals d’Amazon.





http://192.168.1.41/english_note
http://192.168.1.49/english_note
Des de Windows (si tens unitats de xarxa muntades):
plaintextCopiaModificaCopiar: S:\english_note\
Enganxar: O:\english_note\
També es pot fer amb rsync
, scp
o FTP si és necessari.
Des de phpMyAdmin al servidor 192.168.1.41
:
english_note
SQL
.sql
(ex: english_note.sql
)Des de phpMyAdmin al servidor 192.168.1.49
:
english_note
)english_note.sql
Des de phpMyAdmin o terminal MySQL:
sqlCopiaModificaCREATE USER 'miquel'@'localhost' IDENTIFIED BY 'una_contrasenya_forta';
GRANT ALL PRIVILEGES ON english_note.* TO 'miquel'@'localhost';
FLUSH PRIVILEGES;
wp-config.php
Actualitza els valors següents al directori english_note
del nou servidor (O:\english_note\wp-config.php
):
phpCopiaModificadefine('DB_NAME', 'english_note');
define('DB_USER', 'miquel');
define('DB_PASSWORD', 'una_contrasenya_forta');
define('DB_HOST', 'localhost');
Des de phpMyAdmin del nou servidor (192.168.1.49
), a la pestanya SQL, executa:
sqlCopiaModificaUPDATE wp_options
SET option_value = REPLACE(option_value, 'http://192.168.1.41/english_note', 'http://192.168.1.49/english_note')
WHERE option_name IN ('siteurl', 'home');
UPDATE wp_posts
SET guid = REPLACE(guid, 'http://192.168.1.41/english_note', 'http://192.168.1.49/english_note');
UPDATE wp_posts
SET post_content = REPLACE(post_content, 'http://192.168.1.41/english_note', 'http://192.168.1.49/english_note');
Alternativa provada exitosament.
beseit.sql
.//www.beseit.net
.//192.168.1.49/beseit
.Accedeix a:
http://192.168.1.49/english_note/
Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens" | ForEach-Object {
$_.GetValue("")
}
Per instal·lar veus angleses (com les de Text-to-Speech o TTS) a Windows 11 mitjançant PowerShell, pots utilitzar el mètode de Add-WindowsCapability
o mitjançant registres i eines COM, depenent de la versió de Windows i el tipus de veu (clàssica o de nova generació).
Add-WindowsCapability
powershellCopiaModifica# Executar com a administrador
# Exemple per instal·lar veu anglesa dels EUA
--------------------------------------------------------------------------
Add-WindowsCapability -Online -Name "Language.Basic~~~en-US~0.0.1.0"
Add-WindowsCapability -Online -Name "Language.Speech~~~en-US~0.0.1.0"
Add-WindowsCapability -Online -Name "Language.TextToSpeech~~~en-US~0.0.1.0"
Aquest mètode funciona amb paquets de reconeixement de veu i sínt
Altres idiomes (en-GB, en-AU, etc.) també estan disponibles canviant en-US
per l’identificador corresponent.
powershellCopiaModifica# Afegeix anglès dels EUA amb suport de veu
$LangList = New-WinUserLanguageList en-US
$LangList[0].Handwriting = $true
Set-WinUserLanguageList $LangList -Force
Això afegeix l’idioma, però per garantir que la veu estigui disponible, potser necessites reiniciar o obrir manualment la configuració perquè Windows acabi de descarregar els components.
powershellCopiaModifica# Exemple d'activació d'una veu anglesa si està instal·lada
Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0" -Name "411" -Value "Microsoft Zira"
powershellCopiaModificaAdd-Type –AssemblyName System.Speech
$synth = New-Object System.Speech.Synthesis.SpeechSynthesizer
$synth.GetInstalledVoices() | Select-Object -ExpandProperty VoiceInfo | Format-Table Name, Culture
Fer sonar $_SESSION['resposta_session']
amb speechSynthesis
en dues situacions:
Assumim que:
POST
a salvar_pregunta_resposta_actual.php
.index.php
.index.php
Al final de index.php
, afegeix això:
phpCopiaModifica<?php
if (!empty($_SESSION['resposta_session'])) {
$respostaJS = htmlspecialchars($_SESSION['resposta_session'], ENT_QUOTES);
echo "<div id='respostaAVeure' style='display:none;'>$respostaJS</div>";
}
?>
També a index.php
, just abans de </body>
, afegeix:
htmlCopiaModifica<script>
function speak(text) {
if ('speechSynthesis' in window) {
const utterance = new SpeechSynthesisUtterance(text);
speechSynthesis.cancel(); // Evita que s'encavalquin
speechSynthesis.speak(utterance);
} else {
console.warn("El navegador no suporta lectura de text.");
}
}
document.addEventListener("DOMContentLoaded", function () {
const respostaDiv = document.getElementById("respostaAVeure");
if (respostaDiv && respostaDiv.textContent.trim() !== "") {
speak(respostaDiv.textContent.trim());
}
});
</script>
Això farà que la resposta soni cada cop que es carregui index.php
amb una nova $_SESSION['resposta_session']
.
A salvar_pregunta_resposta_actual.php
, assegura’t que, després de processar la resposta, s’hi estableixi la sessió i es redirigeixi a index.php
. Exemple:
phpCopiaModificasession_start();
$_SESSION['resposta_session'] = $textQueVolsFerSonar;
// Després de guardar la resposta
header("Location: ../stud/index.php");
exit;
A index.php
, pots capturar la tecla Enter
per simular el clic del botó “Comprovar”. Afegeix aquest JavaScript:
htmlCopiaModifica<script>
document.addEventListener("keydown", function(event) {
if (event.key === "Enter") {
const boto = document.getElementById("botoComprovar");
if (boto) boto.click();
}
});
</script>
Assegura’t que el botó “Comprovar” tingui l’id="botoComprovar"
:
htmlCopiaModifica<button id="botoComprovar">Comprovar</button>
$_SESSION['resposta_session']
.index.php
recull la resposta i la fa sonar amb veu automàticament.Si vols evitar que soni dues vegades al recarregar, pots:
unset($_SESSION['resposta_session'])
després de generar el div.Entrar a STUD
Es mostra una pantalla amb un llistat de preguntes per defecte o en blanc. El llistat es el contingut de la matriu
Entrar a Stud:
quan s’entra a STUD el formulari de preguntes i respostes pot està buit en aquest cas per a carregar-lo hi ha següents opció:
echo "🔄 S'ha carregat una pregunta perquè el llistat no estava buit però no hi havia pregunta.";
}
if (!empty($_SESSION['nova_pregunta'])) {
$info = obtenirLiniaPreguntaAleatoria($linies);
$_SESSION['linia_index'] = $info['linia_aleatoria_index'];
$_SESSION['resposta_session'] = $info['resposta'];
$_SESSION['pregunta_session'] = $info['pregunta'];
unset($_SESSION['nova_pregunta']); // ✅ Ja no cal tornar-la a fer
}
Símbol | Codi HTML | Descripció |
✅ | ✓ o ✓ | Marca de verificació (correcte) |
✔️ | ✔ o ✔ | També marca de verificació (variant més gruixuda) |
❌ | ✕ o ✕ | Creu, per respostes incorrectes |
✖️ | ✖ o ✖ | Variant de creu |
Atenció a IPV4 192.168.1.10 a SF tenim 192.168.0.1
Ja està
Configuració > Xarxa i Internet > Ethernet
Assignació d’adreça IP Actual: Automàtica (DHCP)
IP: 192.168.1.10 Subxarxa: 255.255.255.0 Porta d’enllaç: [deixa-ho buit] DNS: [deixa-ho buit]
Configuració > Xarxa i Internet > Ethernet
81.0.60.36
192.168.1.41
192.168.1.49
192.168.x.x
.81.0.60.36
en el teu cas).Exemple:
Quan entra: http://81.0.60.36:8080
→ El router ho reenvia a: http://192.168.1.49:80
Camp | Valor | Explicació |
---|---|---|
Name | NAS2_HTTP | Nom identificatiu de la regla |
Protocol | TCP | HTTP utilitza TCP, no UDP |
WAN Port Start/End | 8080 – 8080 | Quin port escolta el router des de fora |
LAN Host | 192.168.1.49 | Adreça IP interna del segon NAS |
LAN Port | 80 | A quin port escolta el servei web del NAS2 |
Action | Enabled | Regla activa |
http://81.0.60.36:8080/0capsa_dic/
8080
81.0.60.36:8080
192.168.1.49:80
http://192.168.1.49:80/0capsa_dic/
El NAS2 rep la sol·licitud com si fos:
/0capsa_dic/
via el mateix camíConcepte | NAS Principal | NAS Secundari |
---|---|---|
IP Local | 192.168.1.41 | 192.168.1.49 |
Accés extern | http://81.0.60.36 | http://81.0.60.36:8080 |
Regla de port forwarding | 80 → 80 | 8080 → 80 |
Protocol | TCP | TCP |
Ús | Accés principal | Segona funcionalitat o usuari |
http://81.0.60.36:8080
, pot no funcionar.81.0.60.36
), pots usar un nom DDNS:
mynas.synology.me
Després pots accedir a:
http://mynas.synology.me
http://mynas.synology.me:8080
https://81.0.60.36
(port 443)https://81.0.60.36:8443
(port 8443)El procés seria exactament igual, canviant només els ports.
Extern Router LAN
─────── ─────── ───────
http://81.0.60.36:8080
↓
[Port Forwarding Rule]
WAN Port: 8080 → LAN IP: 192.168.1.49 : Port 80
↓
http://192.168.1.49:80/0capsa_dic/
─────── ─────── ───────
http://81.0.60.36:8080
Qwen3-235B-A22B
Perfecte! 🎉
Has configurat correctament el port forwarding al router per permetre l’accés a un segon Synology (NAS2) des de l’exterior, compartint la mateixa IP pública (81.0.60.36
) que el primer NAS.
Ara et faré una explicació detallada del procés, amb conceptes clars com LAN , WAN , IP públiques i privades , port forwarding , etc., aplicats al teu cas concret.
81.0.60.36
192.168.1.41
192.168.1.49
Utilitzar diferents ports WAN per redirigir cap a cada servidor local (LAN).
192.168.x.x
.81.0.60.36
en el teu cas).Exemple:
1
2
Quan entra: http://81.0.60.36:8080
→ El router ho reenvia a: http://192.168.1.49:80
Camp | Valor | Explicació |
---|---|---|
Name | NAS2_HTTP | Nom identificatiu de la regla |
Protocol | TCP | HTTP utilitza TCP, no UDP |
WAN Port Start/End | 8080 – 8080 | Quin port escolta el router des de fora |
LAN Host | 192.168.1.49 | Adreça IP interna del segon NAS |
LAN Port | 80 | A quin port escolta el servei web del NAS2 |
Action | Enabled | Regla activa |
1
http://81.0.60.36:8080/0capsa_dic/
8080
81.0.60.36:8080
192.168.1.49:80
/0capsa_dic/
via el mateix camíConcepte | NAS Principal | NAS Secundari |
---|---|---|
IP Local | 192.168.1.41 | 192.168.1.49 |
Accés extern | http://81.0.60.36 | http://81.0.60.36:8080 |
Regla de port forwarding | 80 → 80 | 8080 → 80 |
Protocol | TCP | TCP |
Ús | Accés principal | Segona funcionalitat o usuari |
http://81.0.60.36:8080
, pot no funcionar.81.0.60.36
), pots usar un nom DDNS:
mynas.synology.me
Després pots accedir a:
http://mynas.synology.me
http://mynas.synology.me:8080
https://81.0.60.36
(port 443)https://81.0.60.36:8443
(port 8443)El procés seria exactament igual, canviant només els ports.
1
2
3
4
5
6
7
8
Extern Router LAN
─────── ─────── ───────
http://81.0.60.36:8080
↓
[Port Forwarding Rule]
WAN Port: 8080 → LAN IP: 192.168.1.49 : Port 80
↓
http://192.168.1.49:80/0capsa_dic/
✅ Has configurat correctament el port forwarding per permetre accedir a dos servidors diferents (NAS1 i NAS2) mitjançant la mateixa IP pública .
🔹 Utilitzes diferents ports (80
i 8080
) per separar el tràfic
🔹 El router fa de traductor entre el món exterior (Internet) i la teva xarxa local (LAN)
🔹 No cal canviar res als Synology, ja que escolten pel port 80 i el router fa la traducció
Si vols, puc preparar-te un esquema gràfic o fer una guia pas a pas per configurar el mateix amb HTTPS (ports 443 i 8443), o fins i tot per gestionar això amb subdominis i un reverse proxy .
Perfecte! 🎯
Ara que ja hem configurat HTTP amb dos Synology compartint la mateixa IP pública, podem fer el mateix però amb HTTPS (encriptat). Això et permetrà accedir als dos NAS de manera segura, com:
https://81.0.60.36
https://81.0.60.36:8443
Configurar els ports i regles al router perquè:
https://81.0.60.36
pel port 443https://81.0.60.36:8443
pel port 8443Igual que abans, farem servir port forwarding per redirigir diferents ports WAN cap a cada servidor local.
Vés a:
DSM > Control Panel > Terminal & SNMP
Assegura’t que tens:
✅ Enable HTTPS service on port 443
(els dos NAS han d’escoltar pel port 443)
No canviïs aquest valor al DSM. Deixa’l en 443.
Camp | Valor |
---|---|
Name | NAS1_HTTPS |
Protocol | TCP |
WAN Port Start/End | 443 - 443 |
LAN IP Address | 192.168.1.41 |
LAN Port | 443 |
Camp | Valor |
---|---|
Name | NAS2_HTTPS |
Protocol | TCP |
WAN Port Start/End | 8443 - 8443 |
LAN IP Address | 192.168.1.49 |
LAN Port | 443 |
Extern Router LAN
──────────── ─────────── ───────────
https://81.0.60.36:443
↓
[Port Forwarding Rule]
WAN Port: 443 → LAN IP: 192.168.1.41 : Port 443
↓
https://192.168.1.41:443
Extern Router LAN
──────────────── ─────────── ───────────
https://81.0.60.36:8443
↓
[Port Forwarding Rule]
WAN Port: 8443 → LAN IP: 192.168.1.49 : Port 443
↓
https://192.168.1.49:443
https://81.0.60.36
https://81.0.60.36:8443
mynas.synology.me
: https://mynas.synology.me
https://mynas.synology.me:8443
Problema | Possible causa | Solució |
---|---|---|
No carrega | Port no obert al router | Revisa la regla de port forwarding |
Certificat d’error | Certificat autofirmat | Instal·la un certificat vàlid o accepta’l manualment |
Accés només funciona localment | Falta NAT Loopback | Activa “Hairpin NAT” al router |
Carrega el NAS1 quan entres al NAS2 | Conflicte de ports | Assegura’t que no hi ha duplicats |
Si vols accedir-hi amb noms nets com:
nas1.elmeunom.cat
nas2.elmeunom.cat
Pots usar el Reverse Proxy del DSM.
elmeunom.cat
)A Record
del domini a la teva IP pública (81.0.60.36
) DSM > Portal Web > Reverse Proxy
nas2.elmeunom.cat
→ reenvia a https://192.168.1.49
Així pots gestionar molts servidors amb un sol port (ex: tot pel port 443) i múltiples dominis.
Servei | URL | Port WAN | Port LAN | Destinació |
---|---|---|---|---|
NAS1 HTTP | http://81.0.60.36 | 80 | 80 | 192.168.1.41 |
NAS2 HTTP | http://81.0.60.36:8080 | 8080 | 80 | 192.168.1.49 |
NAS1 HTTPS | https://81.0.60.36 | 443 | 443 | 192.168.1.41 |
NAS2 HTTPS | https://81.0.60.36:8443 | 8443 | 443 | 192.168.1.49 |
Si vols, puc preparar-te un esquema visual o guia pas a pas per instal·lar certs SSL automàtics amb Let’s Encrypt, o fins i tot configurar el reverse proxy per evitar usar ports extra.
Perfecte! 🎯
Ara que tens configurat l’accés HTTP i HTTPS als dos Synology compartint la mateixa IP pública (81.0.60.36
), pots fer un pas més endavant i utilitzar certificats SSL vàlids (Let’s Encrypt) per accedir als dos NAS de manera segura, sense avisos d’inseguretat al navegador.
Configurar certificats SSL amb Let’s Encrypt per a:
https://nas1.elmeunom.cat
https://nas2.elmeunom.cat
Amb un sol domini propi i subdominis, pots gestionar certs per a tots els servidors!
Requisit | Està preparat? |
---|---|
Domini propi (ex: elmeunom.cat ) | ✅ / ❌ |
Subdominis apuntant a la IP pública (A Record ) | ✅ / ❌ |
Port 443 obert al router (per Let’s Encrypt) | ✅ / ❌ |
Synology DSM actualitzat | ✅ / ❌ |
Tens un domini: elmeunom.cat
Crea aquests registres DNS tipus A
:
Subdomini | Adreça IP |
---|---|
nas1.elmeunom.cat | 81.0.60.36 |
nas2.elmeunom.cat | 81.0.60.36 |
Això es fa des del panell d’administració del registador de dominis (ex: GoDaddy, Namecheap, IONOS…)
El Reverse Proxy et permet gestionar múltiples dominis i redirigir-los a diferents serveis o NAS, encara que estiguin dins de la xarxa local.
DSM > Portal Web > Reverse Proxy
nas1.elmeunom.cat
:Camp | Valor |
---|---|
Descripció | NAS1 |
Protocol | HTTPS |
Domini | nas1.elmeunom.cat |
Port 443 | ✅ Activat |
Destí | https://192.168.1.41 |
nas2.elmeunom.cat
:Camp | Valor |
---|---|
Descripció | NAS2 |
Protocol | HTTPS |
Domini | nas2.elmeunom.cat |
Port 443 | ✅ Activat |
Destí | https://192.168.1.49 |
Perquè Let’s Encrypt pugui verificar el teu domini, has d’obrir el port 443 al router i redirigir-lo al NAS principal.
Camp | Valor |
---|---|
Name | DSM_HTTPS |
Protocol | TCP |
WAN Port Start/End | 443 - 443 |
LAN IP Address | 192.168.1.41 |
LAN Port | 443 |
DSM > Portal Web > Certificats SSL > Add > Obtain a new certificate
Tria:
Després de validar, selecciona els dominis:
nas1.elmeunom.cat
nas2.elmeunom.cat
Assigna certs als serveis corresponents:
Portal Web > Reverse Proxy > Edit > Certificate
nas1.elmeunom.cat
→ certificat per nas1
nas2.elmeunom.cat
→ certificat per nas2
Un cop fet tot això:
URL | Servei | Certificat | Funciona? |
---|---|---|---|
https://nas1.elmeunom.cat | NAS1 | ✅ Let’s Encrypt | Sí |
https://nas2.elmeunom.cat | NAS2 | ✅ Let’s Encrypt | Sí |
Let’s Encrypt dóna certs gratuïts però temporals (90 dies).
Extern Router NAS1 (Reverse Proxy) NAS2
──────────── ─────────── ─────────────────────── ───────────
https://nas1.elmeunom.cat
↓
[Port 443 obert → NAS1]
↓
[Reverse Proxy detecta "nas1.elmeunom.cat"]
↓
Reenvia a https://192.168.1.41 amb certificat vàlid
Extern Router NAS1 (Reverse Proxy) NAS2
──────────────── ─────────── ─────────────────────── ───────────
https://nas2.elmeunom.cat
↓
[Port 443 obert → NAS1]
↓
[Reverse Proxy detecta "nas2.elmeunom.cat"]
↓
Reenvia a https://192.168.1.49 amb certificat vàlid
nas1.elmeunom.cat
, nas2.elmeunom.cat
R: No, pots demanar un sol certificat amb múltiples noms (SAN Certificate
) si el suporta el teu proveïdor DNS.
R: Sí! Aquest mètode també serveix per protegir serveis com Nextcloud, Jellyfin, Portainer, etc.
.conf
de configuració o una guia pas a pas per un cas concret?Només cal que em diguis:
I t’ajudo a fer-ho pas a pas! 😊
host NO hosts.txt
a la carpeta etc/host, he de crear un host.local que apunti a 192.168.1.49 per que funcioni la web http://syn_sec.local/polidic dins de web station de synology
Sí, pots configurar un nom de domini local per accedir a la teva web en Synology Web Station. Els passos generals són:
hosts
del teu dispositiu
C:\Windows\System32\drivers\etc\hosts
./etc/hosts
amb permisos d’administrador (sudo nano /etc/hosts
).192.168.1.49 syn_sec.local
syn_sec.local
com a nom d’amfitrió associat a la web. Veig que en la teva configuració ja tens syn_sec.local
registrat amb ports 80 i 443, així que sembla que vas en la direcció correcta.http://syn_sec.local
/polidic
des del teu navegador.# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
192.168.1.41 valldoreix_etc.host
192.168.1.49 englishnote.host # english_note
192.168.1.49 beseit.host # beseit
192.168.1.49 bank.host # bank
192.168.1.49 englishgrammar.host # english_gram
192.168.1.49 polidic.host # 0capsa_dic
proves,local es el servidor Synology_sec amb ip adsads
El fitxer /etc/hosts
és un arxiu del sistema que permet associar adreces IP a noms de domini o host sense necessitat d’utilitzar un servidor DNS. Això és útil per a:
/etc/hosts
per editar-lo:sudo nano /etc/hosts
Afegir una nova línia amb la IP i el nom d'amfitrió:
192.168.1.100 servidor-local
nano
, prem Ctrl + X
, després Y
i Enter
.Verificar que funciona correctament:
ping servidor-local