Apuntes sobre terminal: Comandos útiles para redes IP en Linux: “ip”
Publicado por tanaceto en Noviembre 6, 2007
Leyendo el estupendo texto de Roberto Suárez en el número de noviembre de la revista “Todo Linux” he pensado en escribir este post. De todas formas no es más que un burdo resumen en comparación con el excelente artículo que recomiendo efusivamente.
Si usamos un sistema operativo que utilice Linux deberemos ya estar acostumbrados a la terminal donde introducimos comandos que nos permiten hacer muchas cosas en nuestro ordenador. En los tiempos actuales la mayoría de los usuarios utilizan los programas con una presentación gráfica visualmente atractiva (solo un friki disfruta de una lectura de comandos a toda velocidad), y prefieren no usar la terminal. Es una opción más cómoda, pero también más costosa para el rendimiento del ordenador. Al final todo se resume en una serie de comandos que nos permiten hacer todo en nuestro ordenador. Este post lo que pretende es explicar algunos de estos comandos, que nos permitirán configurar nuestra red. Concretamente nos centraremos en las conexiones para el protocolo TCP/IP y también sobre los dispositivos de red, aunque en los ejemplos usaremos la clásica conexión vía cable ethernet.
Vamos a jugar con la “Terminal” o “Shell” para configurar redes mediante ip.
Para la explicación usaremos el comando “ip” que viene a ser un unificador de una serie de comandos clásicos, como son “ifconfig“, “route“). En la explicación se introduce la posibilidad de hacer las cosas con el programa ip o con los clásicos antes mencionados.
También comentar que usaremos el rango /24 (ver direcciones IP). Sobre los rangos simplemente comentar que está asociado al concepto de máscara de red. No comprendo el funcionamiento real del tema, pero en definitiva existen 3 tipos de rangos. La clase A (/8 equivale a 16 millones de direcciones IP), la clase B (/16 equivale a 65.536 direcciones IP) y clase C (/24 equivale a 255 direcciones IP). En nuestro caso hablaremos siempre de la clase C, puesto que es la que usamos en redes pequeñas (caseras).
COMANDOS ÚTILES:
- Para ver todas las rutas definidas en nuestro equipo:
$ route
$ netstat -nr
$ ip route show
Esta última es la recomendada por el autor porque aporta más información.
- Para añadir una ruta (ejemplo: Para la red 192.168.2.0/24 a través de la dirección IP 192.168.1.10):
$ route add -net 192.168.2.0/24 gw 192.168.1.10
$ ip route add 192.168.2.0/24 via 192.168.1.10
y para eliminarla:
$ route del -net 192.168.2.0/24
$ ip route del 192.168.2.0/24
- Para cambiar la “puerta de enlace por defecto” (primero se elimina la existente y luego se crea la nueva.
Para eliminar la existente:
$ route del default
$ ip route del default
Para crear la nueva (por ejemplo 192.168.1.50)
$ route add -net default gw 192.168.1.50
$ ip route add default via 192.168.1.50
- Para ver la lista de interfaces:
$ ifconfig -a
$ ip link show
- Para activar y desactivar dispositivos de red (usamos de ejemplo el eth0):
$ ifconfig eth0 down
$ ifconfig eth0 up
$ ip link set dev eth0 donw
$ ip link set dev eth0 up
- Para configurar una dirección IP con un dispositivo con su máscara de red clase C y dirección broadcast (ejemplo: 192.168.1.50 con broadcast 192.168.1.255):
$ ifconfig 192.168.1.50 netmask 255.255.255.0 broadcast 192.168.1.255
Una opción curiosa es la de asignar dos direcciones IP a un solo ordenador usando el mismo dispositivo (en nuestro caso ethernet). Esto puede ser útil, por ejemplo, si conectamos un mismo ordenador a dos redes distintas (con un mismo dispositivo).
$ ifconfig eth0:1 192.168.1.51 netmask 255.255.255.0 up
$ ip address add 192.168.1.52/24 dev eth0 label eth0:1
Si queremos eliminar estas nuevas IP asignadas a un mismo dispositivo
$ ifconfig eth0:1 down
$ ip link set dev eth0:1 down
George Enriuque escribió
Me parece que sus apuntes son bastante útiles para tener una idea de las potencialidades de este comando. Me gustaría su idea para poder resolver un problema que tengo y es el siguiente: necesito configurar en un servidor con SUSE 10.2 dos interfaces de red hacia el proveedor de internet, pero todavía no consigo como hacer para que me funcionen las dos. Le agradecería cualquier sugerencia, muchas gracias de antemano.
George Enrique
tanaceto escribió
La verdad es que hace mil años que no uso un SUSE, pero bueno. Tengo una duda sobre tus intenciones. Cuando alguien dice interface de red, supongo que te refieres a que en un mismo ordenador quieres tener un mismo dispositivo configurado mediante dos accesos. ¿Es esto?.
Si fuera así lo que yo haría sería configurar de manera convencional una de las rutas (mediante la terminal o shell), asignando una IP local correctamente configurada hacia la puerta de enlace predeterminada (el router vamos). Luego crearía una segunda conexión con ese mismo dispositivo, creando una especie de “alias” del mismo. Lo hacemos usando el siguiente comando (con este ejemplo entiendo que el router es 192.168.1.1):
$ ifconfig eth0:1 192.168.1.x netmask 255.255.255.0 up
$ ip address add 192.168.1.x/24 dev eth0 label eth0:1
(“x” es el valor que quieras añadir entre 2 y 254 y que no se repita en toda tu Red de Área Local)
Cualquiera de estos dos nos vale. Si miramos nuestra conexiónes (ifconfig) veremos que ahora tenemos dos dispositivos de red, el clásico eth0 y el nuevo eth0:1
Bien, ahora ya tenemos el mismo dispositivo con dos accesos diferenciados al router. Esto es útil si por ejemplo queremos que un proceso concreto quede libre del firewall pero no queremos desactivarlo para otros. Solo habría que hacer un filtro de seguridad hacia una IP concreta, y dejar libre el camino hacia otra.
No sé si esto era lo que realmente estabas preguntando. Tampoco es que sea muy entendido, solo di esos apuntes para explicar algunos conceptos básicos y comandos básicos que a mi me hubieran venido muy bien saberlos, y que de paso cuelgo en Internet incluso para mi.
pablo
tanaceto escribió
se me olvidaba. Tanaceto es un blog que pretende compartir conocimientos entre usuarios poco avanzados. Si descubres cómo hacer cosas que crees que pueden ser utiles, por favor, no dudes escribir un bonito post sobre cómo resolviste tu problema.
El concepto es explicar algo y de paso dar algun ejemplo para que la persona que lo lee pueda intentar algo. Si solo te apetece escribir uno mándalo a tanaceto@gmail.com, y si lo que quieres es apuntarte para escribir siempre que quieras coméntanoslo y te hacemos un acceso como usuario.
Mi idea es que muchos escribamos en este blog. Como habrás podido observar no tiene publicidad insertada y no pretendemos que la tenga. Además yo siempre uso Debian para mis sistemas con Linux, por lo que tus aportaciones con SUSE Linux pueden resultar muy interesantes.
En fin, ya nos comentarás. Un saludo.
cindy escribió
como cambio la ip de una maquina
tanaceto escribió
respuesta a cindy:
* voy a dar por sentado que usas un router para conectarte a Internet, y me estás preguntando como cambiar la IP de tu ordenador dentro de la LAN (es decir, no la IP con la que navegas en Internet).
** Si a lo que te refieres es la Ip con la que navegas por internet (que te la asigna tu isp, es decir, telefónica, orange, etc) tendrás que llamarles para que te asignen una IP estática o usar programas como No-IP.
cambiar la IP de la LAN (Red de Área Local) de un ordenador:
- Depende del sistema operativo que estés empleando:
para Windows debes ir a conexiones de red (en panel de control) y seleccionar el dispositivo (ya sabes, por cable ethernet, wifi, el que sea que uses para conectarte). Lo seleccionas con el ratón y le das al botón derecho. Marcas “propiedades”, y buscas “protocolo tcp/ip). Lo clickeas y se abre una ventana. Por defecto pone asignar automáticamente.
Donde ves IP es donde debes poner la IP de la máquina, donde ves máscara de subred verás que se marca sola. En Puerta de Enlace Predeterminada deberás conocer la IP de tu router. Este proceso deberás hacerlo bien, me refiero, la IP tiene que estar relacionada con la IP del router (los tres primeros dígitos iguales; el router acabará en .1, el tuyo en el que quieras que no esté ocupado y no sobrepase el número 255). Además deberás añadir uns DNS válidos (hay muchos, busca en internet).
Si usas un OS X de mac solo deberás ir a preferencias del sistema-redes. Ahí seleccionas el dispositivo y le pones la IP y la del router tb. También los DNS.
En Linux depende de la distro que estés usando. Pero vamos, la lógica nos lleva a buscar redes dentro de sistema o configuración.
TRUCO:
Si abres la consola o shell, y presionas el comando “ifconfig” para Linux o OS X ó “ipconfig” en windows, te saldrá la información relativa a tu conexión de red.
Suerte
JHON BRAYAN escribió
A
Eduardo Nolasco escribió
Hola, quisiera saber, como puedo obtener o conocer todas las puertas de enlace que estan asignadas por la compañia de internet ISP, en toda la ciudad donde vivo…
gracias
Esteban escribió
Si tú me pudieras colaborar para entrar a un servidor proxy y poder hacer filtrado de paginas web o contenidos web, bajo el sitema operativo Linux, es decir, entrar por la consola y filtrar las paginas, le agradeceria etermamente.
pablo tanaceto escribió
Esteban:
? Vas a tener que darme más datos, pero vamos, para entrar a otro ordenador vía consolo yo emplearía un ssh. Instalaría un servidor ssh en el ordenador al que quisiera acceder y redireccionaría el puerto 22 hacia esa máquina. Luego desde la propia terminal sólo tendrías que usar el propio cliente ssh. Teclea:
ssh usuario@direcciónip -P
El usuario debe ser uno de los usuarios registrados en el ordenador servidor al que se quiere acceder y -P es para que te pida la contraseña. Una vez dentro ya estás en la consola del ordenador deseado.
suerte
Esteban escribió
Tienes todala razón Pablo, no fui claro contigo; yo puedo entrar al ordenador deseado, lo que no se son los comandos para filtrar las paginas o contenidos web, es decir una vez ya estoy en el ordenador, como para decirle filtre tal pagina o las paginas que tengan contenidos tales. Nose si me entienda pero lo que quiero saber es como filtar paginas, obviamente por medio de consola en linux.
Si puedes ayudarme.
gracias
pablo tanaceto escribió
pues a lo bruto es cosa de permisos. Usa el comando chmod para cambiar los permisos y sólo dalo a usuarios autorizados. De todas formas seguro que existen programas específicos para hacer eso. Sobre Apache no sé hacerlo, la verdad es que me entra la curiosidad, pero ese programa y yo tenemos una relación difícil, jeje.
Como administrador escribes esto en la consola:
chmod -R 777 nombredelarchivo
Siendo 777 el tipo de permiso:
* “-rwxr-xr-x” would be represented as 755 in three-digit octal.
* “-rw-rw-r–” would be represented as 664 in three-digit octal.
* “-r-x——” would be represented as 500 in three-digit octal.
Here is a summary of the meanings for individual octal digit values:
1 –x execute
2 -w- write
3 -wx write and execute
4 r– read
5 r-x read and execute
6 rw- read and write
7 rwx read, write and execute
Octal digit values can be added together to make Symbolic Notations:
(4=r)+(1=x) == (5=r-x)
(4=r)+(2=w) == (6=rw-)
(4=r)+(2=w)+(1=x) == (7=rwx)
* UGO = User, Group, Other
* 777 = “-rwxrwxrwx” = rwx for all
* 754 = “-rwxr-xr–” = rwx for owner, r-x for group, r– for other
* 124 = “—x-w-r–” = x for owner, w for group, r for other
Otra idea que se me ocurre es usar los certificados ssl:
es.wikipedia.org/wiki/Ssl
suerte
Recopilación artigos -VirtualBox, manuais, Terminal- « Que che vou contar… escribió
[...] -Redes,Terminal- Comandos de terminal para redes [...]
Gonzalo escribió
Como veo que sabes emplear el comando ip, y el ayuda del manual de linux no me resulta claro, como puedo configurar mi tarjeta de red eth0 en una sola vez, la ip, mascara, gateway y dns server
Desde ya gracias
pablo escribió
pues no sabría responderte.
monica escribió
necesito saber un comando que me desaiblite o interuumpa la respuesta de otro computador por medio de la ip en consola de linux porfa es importante gracias
pablo escribió
?