У вас наверняка есть маршрутизатор между вашим домашним ПК и Интернетом.
Таким образом, вам нужно будет выполнить переадресацию портов на вашем маршрутизаторе с
на
.
Если вы находитесь за маршрутизатором, вам не нужно менять порт прослушивания SSH с 22, а просто добавьте переадресацию в брандмауэр вашего маршрутизатора.
cat /proc/net/route
дает вам полную таблицу маршрутизации, включая шлюз по умолчанию, как и ip route
. Однако IP-адреса представлены в шестнадцатеричном и байтовом формате.
В CentOS сведения о шлюзе по умолчанию можно получить из файла/etc/sysconfig/network
.Как упоминал @dirkt, таблица маршрутизации по умолчанию хранится в виде текста в /proc/net/route
в любой современной системе Linux, но, к сожалению, IP-адреса хранятся в (в обратном )шестнадцатеричном формате. С помощью небольшого взлома bash и помощи от awk
и sed
мы можем превратить это в удобочитаемый IP-адрес :
for i in $(echo "$(< /proc/net/route | head -2 | tail -1 | awk '{print $3}')" | sed -E 's/(..)(..)(..)(..)/\4 \3 \2 \1/' ) ; do printf "%d." $((16#$i)); done | sed 's/.$//'
Вот та же идея в более читаемой (и многострочной -строчной )версии:
#!/usr/bin/env bash
get-default-gateway() {
default_route_ip="$(< /proc/net/route | head -2 | tail -1 | awk '{print $3}')"
hex-ip-to-dec-ip "$default_route_ip"
}
hex-ip-to-dec-ip() {
local hex_ip="$1"
for i in $(echo "$hex_ip" | sed -E 's/(..)(..)(..)(..)/\4 \3 \2 \1/' ) ; do
printf "%d." $((16#$i));
done | sed 's/.$//'
}
get-default-gateway
Вы можете использовать команду route :
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1