Tudo começou com o fato de que o roteador TP-Link TL-WR1043ND, que serviu fielmente, deixou de atender Ă s necessidades da rede domĂ©stica, eu queria uma banda de 5 GHz e acesso rápido aos arquivos em uma unidade conectada ao roteador. Depois de examinar os fĂłruns especializados (w3bsit3-dns.com, iXBT), sites com crĂticas e ver as lojas locais, decidi comprar o Keenetic Ultra.
A favor desse dispositivo especĂfico, boas crĂticas dos proprietários funcionaram:
- sem problemas com superaquecimento (aqui tivemos que abandonar os produtos Asus);
- confiabilidade no trabalho (aqui eu riscado o TP-Link);
- facilidade de configuração (eu tinha medo de não lidar e riscou MikroTik).
Eu tive que chegar a um acordo com os contras:
- sem WiFi6, eu queria levar equipamentos com uma margem para o futuro;
- 4 portas LAN, eu queria mais, mas isso não é mais uma categoria doméstica.
Como resultado, obtivemos este "servidor":
- Ă esquerda, o terminal Ăłptico da Rostelecom;
- à direita está o nosso roteador experimental;
- um fio ao roteador está conectado ao m.2 SSD de 128 GB, colocado em uma caixa USB3 da aliexpress, agora está bem fixado na parede;
- em primeiro plano, há um cabo de extensão com desconexão independente dos soquetes; o fio dele vai para um no-break barato;
- no fundo, há um conjunto de pares trançados - na fase de reforma do apartamento, planejei imediatamente os soquetes RJ45 nos locais onde o equipamento deveria estar localizado, para não depender da bagunça do Wi-Fi.
Então, nós temos o equipamento, precisamos configurá-lo:
- a configuração inicial do roteador leva cerca de 2 minutos, indicamos os parâmetros de conexão com o provedor (meu terminal óptico é alternado para o modo bridge, a conexão PPPoE é aumentada pelo roteador), o nome da rede WiFi e a senha - basicamente tudo, o roteador inicia e funciona.
Colocamos o encaminhamento de portas externas para as portas do próprio roteador na seção "Regras de rede - Encaminhamento":
Agora você pode ir para a parte "avançada", que é o que eu queria do roteador:
- funcionalidade de um pequeno NAS para uma rede doméstica;
- atuando como um servidor web para várias páginas particulares;
- funcionalidade de nuvem pessoal para acessar dados pessoais de qualquer lugar do mundo.
O primeiro é implementado em ferramentas internas, exigindo pouco esforço:
- (, , SSD Ext4 MiniTool Partition Wizard Free Edition ( linux , ). , , , — , — SSD HDD.
Depois disso, conectamos a unidade ao roteador e a observamos na tela do monitor do sistema.Clique
em "Discos e impressoras USB" na seção "Aplicativos" e configure um compartilhamento na seção "Rede Windows":
E temos um recurso de rede que pode ser usado com computadores no Windows, conectando, se necessário, como um disco: net use y: \\ 192.168.1.1 \ SSD / persistent: yes
A velocidade de um NAS improvisado é suficiente para uso doméstico, ele usa todo o gigabit por fio, em WiFi a velocidade é de cerca de 400-500 megabits.
A configuração do armazenamento é uma das etapas necessárias para configurar o servidor. Em seguida, precisamos:
- adquirir um domĂnioe um endereço IP estático (vocĂŞ pode usar isso sem usar o DNS dinâmico, mas eu já tinha um IP estático; portanto, ficou mais fácil usar serviços Yandex gratuitos - delegando um domĂnio lá , obtemos hospedagem e correio DNS no nosso domĂnio);
- configurar servidores DNS e adicionar registros A apontando para o seu IP:
leva várias horas para que as configurações de domĂnio e delegação DNS entrem em vigor, por isso estamos configurando simultaneamente o roteador.
Primeiro, você precisa instalar o repositório do Entware, a partir do qual podemos instalar os pacotes necessários no roteador. Eu segui esta instrução, apenas não fez o upload do pacote de instalação via FTP, mas criou uma pasta diretamente na unidade de rede conectada anteriormente e copiou o arquivo para lá da maneira usual.
Após obter acesso via SSH, alteramos a senha com o comando passwd e colocamos todos os pacotes necessários com o comando opkg install [package names]:
Durante a configuração, os seguintes pacotes foram instalados no roteador (a saĂda do comando opkg list-installation):
Lista de Pacotes
bash — 5.0-3
busybox — 1.31.1-1
ca-bundle — 20190110-2
ca-certificates — 20190110-2
coreutils — 8.31-1
coreutils-mktemp — 8.31-1
cron — 4.1-3
curl — 7.69.0-1
diffutils — 3.7-2
dropbear — 2019.78-3
entware-release — 1.0-2
findutils — 4.7.0-1
glib2 — 2.58.3-5
grep — 3.4-1
ldconfig — 2.27-9
libattr — 2.4.48-2
libblkid — 2.35.1-1
libc — 2.27-9
libcurl — 7.69.0-1
libffi — 3.2.1-4
libgcc — 8.3.0-9
libiconv-full — 1.11.1-4
libintl-full — 0.19.8.1-2
liblua — 5.1.5-7
libmbedtls — 2.16.5-1
libmount — 2.35.1-1
libncurses — 6.2-1
libncursesw — 6.2-1
libndm — 1.1.10-1a
libopenssl — 1.1.1d-2
libopenssl-conf — 1.1.1d-2
libpcap — 1.9.1-2
libpcre — 8.43-2
libpcre2 — 10.34-1
libpthread — 2.27-9
libreadline — 8.0-1a
librt — 2.27-9
libslang2 — 2.3.2-4
libssh2 — 1.9.0-2
libssp — 8.3.0-9
libstdcpp — 8.3.0-9
libuuid — 2.35.1-1
libxml2 — 2.9.10-1
locales — 2.27-9
mc — 4.8.23-2
ndmq — 1.0.2-5a
nginx — 1.17.8-1
openssl-util — 1.1.1d-2
opkg — 2019-06-14-dcbc142e-2
opt-ndmsv2 — 1.0-12
php7 — 7.4.3-1
php7-mod-openssl — 7.4.3-1
poorbox — 1.31.1-2
terminfo — 6.2-1
zlib — 1.2.11-3
zoneinfo-asia — 2019c-1
zoneinfo-europe — 2019c-1
busybox — 1.31.1-1
ca-bundle — 20190110-2
ca-certificates — 20190110-2
coreutils — 8.31-1
coreutils-mktemp — 8.31-1
cron — 4.1-3
curl — 7.69.0-1
diffutils — 3.7-2
dropbear — 2019.78-3
entware-release — 1.0-2
findutils — 4.7.0-1
glib2 — 2.58.3-5
grep — 3.4-1
ldconfig — 2.27-9
libattr — 2.4.48-2
libblkid — 2.35.1-1
libc — 2.27-9
libcurl — 7.69.0-1
libffi — 3.2.1-4
libgcc — 8.3.0-9
libiconv-full — 1.11.1-4
libintl-full — 0.19.8.1-2
liblua — 5.1.5-7
libmbedtls — 2.16.5-1
libmount — 2.35.1-1
libncurses — 6.2-1
libncursesw — 6.2-1
libndm — 1.1.10-1a
libopenssl — 1.1.1d-2
libopenssl-conf — 1.1.1d-2
libpcap — 1.9.1-2
libpcre — 8.43-2
libpcre2 — 10.34-1
libpthread — 2.27-9
libreadline — 8.0-1a
librt — 2.27-9
libslang2 — 2.3.2-4
libssh2 — 1.9.0-2
libssp — 8.3.0-9
libstdcpp — 8.3.0-9
libuuid — 2.35.1-1
libxml2 — 2.9.10-1
locales — 2.27-9
mc — 4.8.23-2
ndmq — 1.0.2-5a
nginx — 1.17.8-1
openssl-util — 1.1.1d-2
opkg — 2019-06-14-dcbc142e-2
opt-ndmsv2 — 1.0-12
php7 — 7.4.3-1
php7-mod-openssl — 7.4.3-1
poorbox — 1.31.1-2
terminfo — 6.2-1
zlib — 1.2.11-3
zoneinfo-asia — 2019c-1
zoneinfo-europe — 2019c-1
Talvez haja algo supérfluo aqui, mas há muito espaço na unidade, então eu não entendi.
Depois de instalar os pacotes, configuramos o nginx, tentei com dois domĂnios - o segundo Ă© configurado com https e enquanto o stub está travado. As portas 81 e 433 internas, em vez das 80 e 443, sĂŁo usadas, pois os painĂ©is de administração do roteador ficam pendurados nas portas normais.
etc / nginx / nginx.conf
user nobody;
worker_processes 1;
#error_log /opt/var/log/nginx/error.log;
#error_log /opt/var/log/nginx/error.log notice;
#error_log /opt/var/log/nginx/error.log info;
#pid /opt/var/run/nginx.pid;
events {
worker_connections 64;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log /opt/var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 81;
server_name milkov.su www.milkov.su;
return 301 https://milkov.su$request_uri;
}
server {
listen 433 ssl;
server_name milkov.su;
#SSL support
include ssl.conf;
location / {
root /opt/share/nginx/html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
etc / nginx / ssl.conf
ssl_certificate /opt/etc/nginx/certs/milkov.su/fullchain.pem;
ssl_certificate_key /opt/etc/nginx/certs/milkov.su/privkey.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /opt/etc/nginx/dhparams.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_stapling on;
Para que o site funcione via https, usei o conhecido script desidratado, instalando-o de acordo com esta instrução . Esse processo não causou nenhuma dificuldade, eu me deparei apenas com o fato de que no texto do script funcione no meu roteador, é necessário comentar a linha no arquivo /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=engines
E observo que a geração do dhparams.pem com o comando "openssl dhparam -out dhparams.pem 2048" no meu roteador leva mais de 2 horas; se não fosse o indicador de progresso, eu teria perdido a paciência e reiniciado.
ApĂłs receber os certificados, reinicie o nginx com o comando "/opt/etc/init.d/S80nginx restart". Em princĂpio, isso conclui a instalação, mas o site ainda nĂŁo existe - se colocarmos o arquivo index.html no diretĂłrio / share / nginx / html, veremos um esboço.
<!DOCTYPE html>
<html>
<head>
<title> !</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1> !</h1>
<p> , .</p>
</body>
</html>
Para colocar as informações de maneira bonita, é mais fácil para um profissional como eu usar modelos prontos, depois de uma longa pesquisa em vários diretórios, encontrei o templatemo.com - há uma boa seleção de modelos gratuitos que não exigem uma atribuição obrigatória (o que é raro na Internet, a maioria dos modelos na licença exige que você mantenha um link para o recurso de onde foram obtidos).
Selecionamos o modelo apropriado - existem vários casos, baixamos o arquivo morto e descompactamos no diretĂłrio / share / nginx / html, vocĂŞ pode fazer isso no seu computador e depois editar o modelo (aqui vocĂŞ precisa de um conhecimento mĂnimo de HTML para nĂŁo quebrar a estrutura) e substitua os gráficos como mostrado na figura abaixo.
Resumo: o roteador Ă© bastante adequado para hospedar um site leve nele, em princĂpio - se uma carga pesada nĂŁo for esperada, vocĂŞ pode instalar o php e experimentar projetos mais complexos (veja o nextcloud / owncloud, parece que existem instalações bem-sucedidas nesse hardware). A capacidade de instalar pacotes aumenta sua utilidade - por exemplo, quando era necessário proteger a porta RDP do PC na rede local, colocar batida no roteador - e o encaminhamento de porta para o PC era aberto somente apĂłs a batida da porta.
Por que um roteador e não um PC comum? Um roteador é um dos poucos equipamentos de informática que funcionam 24 horas por dia em muitos apartamentos, um roteador doméstico geralmente é absolutamente silencioso e um site leve com menos de cem visitas por dia não o sobrecarrega.