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
- 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';
- Abrir el puerto 3306 en el firewall (si está activo) sudo ufw allow 3306/tcp sudo ufw reload
- 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