first commit
This commit is contained in:
@@ -0,0 +1,455 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user