Files
guias_informatica/Guia_ubuntu-server.md
2026-08-04 19:24:21 +02:00

16 KiB

AYUDA UBUNTU SERVER

LISTAR DISCOS/ESPACIO/DIRECTORIOS
lsblk -f
sudo fdisk -l
df -h


INFO IP ip a Saber la ip del equipo o maquina virtual hostname -I http://192.168.18.235/


MONTAR/DESMONTAR USB sudo mkdir -p /mnt/mi_usb # Cambia "mi_usb" por el nombre que prefieras sudo mount /dev/sdb1 /mnt/mi_usb # Reemplaza "/dev/sdb1" con tu dispositivo sudo mount -t ntfs-3g /dev/sdb1 /mnt/mi_usb # Para NTFS sudo mount -t vfat /dev/sdb1 /mnt/mi_usb # Para FAT32 sudo mount -o rw /dev/sdb1 /mnt/mi_usb Si el dispositivo está en modo solo lectura, intenta montarlo con permisos de escritura sudo apt install ntfs-3g Para dispositivos NTFS, ntfs-3g sudo umount /dev/sdb1 sudo umount /mnt/mi_usb

Montaje automático al recinicar (opcional) sudo nano /etc/fstab UUID=.... /mnt/mi_usb ntfs-3g defaults 0 0 UUID=.... /mnt/externo ext4 defaults,nofail 0 2

Para obtener el UUID del dispositivo, usa: sudo blkid sudo blkid /dev/sdb1

systemctl daemon-reload (recargar informacion discos fstab)


INSTALAR APACHE2 sudo apt install apache2 -y sudo ufw allow 'Apache Full' permitir trafico en el firewall sudo systemctl status apache2 verificar que apache esta funcionando http://<IP_DEL_SERVIDOR> Probar en el navegador


INSTALAR NGINX sudo apt install nginx -y sudo ufw allow 'Nginx Full' http://<IP_DEL_SERVIDOR>


INSTALAR MYSQL sudo apt install mysql-server -y sudo mysql_secure_installation Asegurar instalacion de mysql, "yes a todas las opciones" sudo systemctl status mysql sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf bind-address = 0.0.0.0 Cambiar 127.0.0.1 para conectarse desde otro dispositivos de la red (no solo localhost)

Crear usuario Mysql para aceder desde otro equipo CREATE USER 'usuario_remoto'@'%' IDENTIFIED BY 'miclave123'; GRANT ALL PRIVILEGES ON . TO 'usuario_remoto'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT; Si prefieres restringir a una IP específica de tu red local (por ejemplo, 192.168.1.100), reemplaza '%' por '192.168.1.100'. sudo systemctl restart mysql Reiniciar mysql sudo mysql CREATE DATABASE mi_base_de_datos; Crear base de datos de prueba EXIT; SELECT User, Host FROM mysql.user; Ver usuarios existentes

Eliminar usuario DROP USER 'nombre_usuario'@'host'; FLUSH PRIVILEGES;


INSTALAR MARIADB sudo apt install mariadb-server -y


INSTALAR PHP sudo apt install php libapache2-mod-php php-mysql -y Instalar php y modulos necesarios php -v Verificar instalacion php echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php crea archivo de prueba en raiz servidor web http://<IP_DEL_SERVIDOR>/info.php verificar instalacion sudo rm /var/www/html/info.php eliminar archivo de prueba /var/www/html/ Directorio apache2 para aplicaciones


INSTALAR PHPMYADMIN sudo apt install phpmyadmin -y
Elige Apache cuando pregunte el servidor web (usa espacio para seleccionar). Responde Sí a la configuración de la base de datos con dbconfig-common. Elige una contraseña para el usuario phpmyadmin. Habilita phpMyAdmin en Apache (Si no se habilita automáticamente): sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin sudo systemctl reload apache2 http://<IP_DEL_SERVIDOR>/phpmyadmin Acceder a phpmyadmin


WORDPRESS Crear base de datos (Linea de comandos o desde phpmyadmin) sudo mysql -u root -p CREATE DATABASE wordpress; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'tupassword'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES; EXIT;

sudo apt install php libapache2-mod-php php-mysql -y cd /tmp wget https://wordpress.org/latest.tar.gz Descargar WordPress tar -xvzf latest.tar.gz Extraer archivo sudo mv wordpress /var/www/html/ mover directorio WordPress

sudo chown -R www-data:www-data /var/www/html/wordpress Configurar permisos sudo chmod -R 755 /var/www/html/wordpress

sudo cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php Crear archivo configuracion sudo nano /var/www/html/wordpress/wp-config.php Editar archivo configuracion

define('DB_NAME', 'wordpress'); define('DB_USER', 'wpuser'); define('DB_PASSWORD', 'tu_contraseña_segura'); define('DB_HOST', 'localhost');

sudo nano /etc/apache2/sites-available/wordpress.conf Configurar apache para WordPress <VirtualHost *:80> ServerName localhost DocumentRoot /var/www/html/wordpress <Directory /var/www/html/wordpress> AllowOverride All Require all granted

sudo a2ensite wordpress.conf Habilita sitio y modulo rewrite sudo a2enmod rewrite http://localhost/wordpress Completar instalacion de WordPress


SSH sudo apt install openssh-server -y Instalar ssh sudo systemctl status ssh Estado de ssh sudo systemctl start ssh Activar ssh sudo systemctl enable ssh Iniciar automáticamente con el sistema sudo systemctl restart apache2 Reiniciar apache

sudo ufw allow OpenSSH Permitir ssh en el firewall sudo ufw enable

ssh [email protected].1.100 Conectarte desde otro equipo PuTTY Host name:ip servidor aplicación para windows

ssh-keygen Configurar acceso sin contraseña con clave SSH ssh-copy-id [email protected].1.100


SCP (SECURE COPY) scp -r "C:\ruta\de\la\carpeta" usuario@ip_del_servidor:/home1 Windows scp -r /ruta/local/carpeta usuario@ip_del_servidor:/home1 WSL scp -r /mnt/c/Users/usuario/Desktop/micarpeta [email protected].1.100:/home1 Ejemplo WSL scp -r /ruta/carpeta [email protected].1.50:/ruta/de/destino Ubuntu server a Windows WinSCP Entorno grafico windows

Dar permisos temporales de root (evita usar sudo cada vez) sudo chmod -R 775 /home1


CAMBIAR COLORES TERMINAL echo $LS_COLORS Ver configuracion de colores export LS_COLORS="$LS_COLORS:di=36" Modificar LS_COLORS azul claro export LS_COLORS="$LS_COLORS:di=94" Azul brillante echo 'export LS_COLORS="$LS_COLORS:di=36"' >> ~/.bashrc Hacer el cambio permanente source ~/.bashrc Recargar el archivo


Instalar LAMP - Phpmyadmin sudo apt update && sudo apt upgrade sudo apt install apache2 sudo apt install mysql-server sudo mysql_secure_installation sudo apt install php libapache2-mod-php php-mysql php-sqlite3 echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php sudo rm /var/www/html/info.php sudo systemctl restart apache2 sudo apt install phpmyadmin seleccionar apache - aceptar dbconfig-common sudo apt install mysql-workbench Crear usuario phpmyadmin para acceder: sudo mysql Entrar mysql CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'clave_segura'; GRANT ALL PRIVILEGES ON . TO 'usuario'@'localhost' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON nombre_basedatos.* TO 'usuario'@'localhost'; # Acceso a una sola base datos FLUSH PRIVILEGES; Aplicar canbios EXIT; http://localhost/phpmyadmin Iniciar sesion en phpmyadmin

Script automatizado #!/bin/bash echo "==> Actualizando sistema..." sudo apt update && sudo apt upgrade -y echo "==> Instalando Apache..." sudo apt install apache2 -y echo "==> Instalando MySQL Server..." sudo apt install mysql-server -y echo "==> Ejecutando configuración segura de MySQL..." sudo mysql_secure_installation echo "==> Instalando PHP y módulos necesarios..." sudo apt install php libapache2-mod-php php-mysql -y echo "==> Reiniciando Apache..." sudo systemctl restart apache2 echo "==> Instalando phpMyAdmin..." sudo apt install phpmyadmin -y echo "==> Habilitando phpMyAdmin en Apache..." sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin sudo systemctl reload apache2 echo "==> Instalando MySQL Workbench..." sudo apt install mysql-workbench -y echo "==> Instalación completada." echo "Puedes acceder a phpMyAdmin en: http://localhost/phpmyadmin" Instrucciones Script instalar_lamp_phpmyadmin_workbench.sh chmod +x instalar_lamp_phpmyadmin_workbench.sh Hacer ejecutable ./instalar_lamp_phpmyadmin_workbench.sh Ejecutar script


Acceso a mysql / mariadb de ubuntu server

  1. Cambiar ip de acceso (localhost a cualquier ip de otro equipo) En mysql: sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf En mariaDb; sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf Cambiar linea: bind-address = 127.0.0.1 por bind-address = 0.0.0.0 Reiniciar mysql / mariaDb sudo systemctl restart mysql / mariadb

2.Dar permisos al usuario MySql (%) sudo mysql -u root -p Nuevo usuario CREATE USER 'usuario'@'%' IDENTIFIED BY 'tu_contraseña'; GRANT ALL PRIVILEGES ON . TO 'usuario'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; Con usuario ya creado GRANT ALL PRIVILEGES ON . TO 'usuario'@'%' IDENTIFIED BY 'tu_contraseña';

  1. Abrir el puerto 3306 en el firewall (si está activo) sudo ufw allow 3306/tcp sudo ufw reload
  2. Conectarte desde Workbench, heidisql, etc...

MONTAR USB EXTERNO Y PERMISOS (por ejemplo transmission) Sistema normal

sudo fdisk -l identifica/muestra discos conectados sudo mkdir -p /mnt/mi_usb # Crear punto de montaje (directorio) sudo mount -t ntfs-3g /dev/sdb1 /mnt/mi_usb # Para NTFS sudo mount -t vfat /dev/sdb1 /mnt/mi_usb # Para FAT32 df -h o lsblk -f # verificar sudo umount /dev/sdb1 o sudo umount /mnt/mi_usb # desmontar

sudo blkid # identificar UUID del dispositivo sudo blkid /dev/sdb1

sudo chown -R root:debian-transmission /mnt/wd sudo chmod -R 775 /mnt/wd sudo chmod g+s /mnt/wd sudo systemctl daemon-reexec sudo mount /mnt/wd

sudo nano /etc/fstab Editar archivo y añadir unidad para montaje automatico al iniciar

UUID=XXXX-XXXX /mnt/mi_usb ntfs defaults 0 0 UUID=ABCD-1234 /mnt/toshiba ntfs defaults,uid=debian-transmission,gid=debian-transmission,umask=0022 0 0 unidad ntfs, añadir linea para acceso de transmission UUID=XXXX-XXXX /mnt/toshiba ext4 defaults 0 2 Unidad ext4


INSTALAR TRANSMISSION sudo apt update sudo apt install transmission-daemon sudo systemctl stop transmission-daemon sudo nano /etc/transmission-daemon/settings.json "rpc-enabled": true, "rpc-bind-address": "0.0.0.0", "rpc-whitelist-enabled": false, "rpc-username": "admin", "rpc-password": "tu_contraseña",

sudo nano/etc/apparmor.d/transmission #modificar la siguiente linea (evita que se desconecte automaticamente): -profile transmission-daemon /usr/bin/transmission-daemon flags=(complain) { +profile transmission-daemon /usr/bin/transmission-daemon flags=(complain,attach_disconnected) { sudo apparmor_parser -r -W -T /etc/apparmor.d/transmission

sudo systemctl start transmission-daemon

http://:9091


INSTALAR PLEX MEDIA SERVER Descargar el paquete de Plex: Ve a https://www.plex.tv/media-server-downloads/ y copia el enlace del .deb para Ubuntu. wget https://downloads.plex.tv/plex-media-server-new/... sudo dpkg -i plexmediaserver_*.deb sudo systemctl enable plexmediaserver sudo systemctl start plexmediaserver http://:32400/web


INSTALAR GITEA sudo snap install gitea


INSTALAR NEXTCLOUD Instala Apache, PHP y MySQL: sudo apt update sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-gd php-json php-xml php-curl php-zip php-mbstring php-bcmath unzip -y

Configura la base de datos: sudo mysql CREATE DATABASE nextcloud; CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'tupasswordsegura'; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost'; FLUSH PRIVILEGES; EXIT;

Descarga Nextcloud: wget https://download.nextcloud.com/server/releases/latest.zip unzip latest.zip sudo mv nextcloud /var/www/html/ sudo chown -R www-data:www-data /var/www/html/nextcloud

Crea archivo de configuración en Apache: sudo nano /etc/apache2/sites-available/nextcloud.conf <VirtualHost *:80> ServerAdmin admin@localhost DocumentRoot /var/www/html/nextcloud ServerName nextcloud.local

<Directory /var/www/html/nextcloud/>
    Options +FollowSymlinks
    AllowOverride All
    Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Activa el sitio y módulos necesarios: sudo a2ensite nextcloud.conf sudo a2enmod rewrite headers env dir mime sudo systemctl reload apache2

Abre el navegador y escribe http://IP_DEL_SERVIDOR/nextcloud

BACKUP nextcloud sudo -E -u www-data php occ maintenance:mode --on rsync -Aavx nextcloud/ nextcloud-dirbkp_date +"%Y%m%d"/ mysqldump --single-transaction --no-tablespaces -h [server] -u [username] -p[password] [db_name] > nextcloud-sqlbkp_date +"%Y%m%d".bak mysqldump --single-transaction --default-character-set=utf8mb4 -h [server] -u [username] -p[password] [db_name] > nextcloud-sqlbkp_date +"%Y%m%d".bak sudo -E -u www-data php occ maintenance:mode --off

RESTORE nextcloud rsync -Aax nextcloud-dirbkp/ nextcloud/ mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud" mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud"

utf8 mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud" mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"

mysql -h [server] -u [username] -p[password] [db_name] < nextcloud-sqlbkp.bak

Copiar archivos del servidor ubuntu a nextcloud sudo cp -R /ruta/de/tus/archivos/* /var/www/nextcloud/data/<tu_usuario>/files/Destino/

sudo -u www-data php /var/www/nextcloud/occ files:scan --path="<tu_usuario>/files/Destino"

Nota para lo siguiente: Ha funcionado sin crear directorio destino ni dar permisos. No copies archivos cuando el usuario esté accediendo a Nextcloud; podrías corromper datos. Asegúrate de que el directorio de destino (Destino) exista previamente, o créalo con: mkdir /var/www/nextcloud/data/<tu_usuario>/files/Destino chown -R www-data:www-data /var/www/nextcloud/data/<tu_usuario>/files/Destino

Eliminar bloqueos base de datos de Nextcloud Nextcloud a veces deja bloqueos en la base de datos que impiden operaciones de archivos. sudo mysql -u root -p Selecciona base datos Nextcloud USE nextcloud; DELETE FROM oc_file_locks WHERE 1; EXIT;


SOLUCION PROBLEMAS DNS-INTERNET DE CLOUDFLARE TUNNEL - TAILSCALE

Archivo que controla las dns es:

/etc/resolv.conf

Tiene que estar asi para que funcione dns de cloudflare:

cat /etc/resolv.conf

nameserver 1.1.1.1

nameserver 8.8.8.8

(reiniciar el servicio, a veces no necesario):

sudo systemctl restart systemd-resolved

Al arrancar tailsclale hay que indicar que no use las dns de tailscale, en la terminal o tambien en la consola web de tailscale donde salen todos los dipositivos que la utilizan, dejando que ubuntu server es el exit node:

sudo tailscale up --accept-dns=false --advertise-exit-node


UBUNTU SERVER ACCESOS
192.168.18.235

ubuntu server     jesus / ??? phpmyadmin    phpmyadmin / Password123! mysql           admin / bitr2d2c3p0

WordPress          admin / bitr2d2c3p0             bd wordpress wpuser - Password123! https://xiberus.com/wordpress/wp-admin

Gitea            192.168.18.235:3000                   admin / Codibyte1@gitea

Plex http://:32400/web

Transmission     192.168.18.235:9091                    user: admin - Codibyte1@

nextcloud       192.168.18.235:9091/nextcloud                  bd mysql                  base:nextcloud user:nextclouduser pass:password123
                    administrador - user:admin pass: bitr2d2c3p0