455 lines
16 KiB
Markdown
455 lines
16 KiB
Markdown
# 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
|
||
</Directory>
|
||
</VirtualHost>
|
||
|
||
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 usuario@192.168.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 usuario@192.168.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 ubuntu@192.168.1.100:/home1 Ejemplo WSL
|
||
scp -r /ruta/carpeta usuario_windows@192.168.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://<ip-del-servidor>: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://<ip-del-servidor>: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
|
||
```
|
||
|
||
</VirtualHost>
|
||
|
||
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://<ip-del-servidor>: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 |