1

У меня есть машина с 2 сетевыми подключениями, wlan0 и eth0. Через wlan0 машина linux подключается к маршрутизатору, а через eth0 машина linux подключается к IP-камере (через сетевой коммутатор).

С машины с Windows в той же сети, что и wlan0, я подключаюсь к машине с Linux, используя putty. Как я могу подключиться к ipcamera на eth0 через мой компьютер с Windows, подключенный через wlan0?

IP-адрес моей машины linux, подключенной через wlan0: 192.168.100.10 (шлюз: 192.168.100.1)

IP-адрес IP-камеры, подключенной к машине linux через eth0 с помощью коммутатора, составляет 192.168.1.10 (шлюз 192.168.1.1)

Когда я нахожусь на моей машине с Linux, я могу подключиться как к wlan0, так и к eth0 и получить доступ к IP-камере, но когда я пытаюсь подключиться к eth0 через мой компьютер с Windows, который подключен к тому же маршрутизатору, что и wlan0, я могу не подключаться к eth0.

Как переслать соединение eth0 IP-камеры на соединение wlan0, чтобы я мог получить к нему доступ с моего ПК с Windows?

У меня включена переадресация IP.

Вот моя конфигурация интерфейсов:

# Local loopback
auto lo
iface lo inet loopback

#Wireless
#Uplink1 Wireless
auto wlan0
iface wlan0 inet static
    wpa-ssid wifi
    w8a-psk 90509d8a2bcd0893a2b873e5d9ba9c96ec686ce2b90e3252eab680fdef1c6125
    address 192.168.100.10
    netmask 255.255.255.0
    gateway 192.168.100.1
    post-up ip route add 192.168.100.0/24 dev wlan0 table uplink1
    post-up ip route add default via 192.168.100.1 table uplink1
    post-up ip rule add from 192.168.100.10/32 table uplink1 priority 100
    post-up ip route flush cache
    pre-down ip rule del from 192.168.100.10/32 table uplink1 priority 100
    pre-down ip route flush table uplink1
    pre-down ip route flush cache

    #Uplink2
    auto eth0
    iface eth0 inet static
    address 192.168.1.118
    netmask 255.255.255.0
    #gateway 192.168.1.1
    post-up ip route add 192.168.1.0/24 dev eth0 table uplink2
    post-up ip route add default via 192.168.1.1 table uplink2
    post-up ip rule add from 192.168.1.118/32 table uplink2 priority 110
    post-up ip route flush cache
    pre-down ip rule del from 192.168.1.118/32 table uplink2 priority 110
    pre-down ip route flush table uplink2
    pre-down ip route flush cache

Вывод ifconfig:

eth0      Link encap:Ethernet  HWaddr 02:41:06:40:b3:e9
inet addr:192.168.1.118  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::41:6ff:fe40:b3e9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:1064 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:63840 (62.3 KiB)  TX bytes:558 (558.0 B)
Interrupt:46

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 00:a1:b0:f0:63:e4
inet addr:192.168.100.10  Bcast:192.168.100.255  Mask:255.255.255.0
inet6 addr: fe80::2a1:b0ff:fef0:63e4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:1369 errors:0 dropped:0 overruns:0 frame:0
TX packets:790 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:126212 (123.2 KiB)  TX bytes:102124 (99.7 KiB)

Выход маршрута:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.100.1   0.0.0.0         UG    0      0        0 wlan0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.100.0   *               255.255.255.0   U     0      0        0 wlan0

Я уже пытался сделать пересылку IP через iptables, но безрезультатно. Я попытался: iptables -t nat -A PREROUTING -p tcp -d 192.168.1.10 --dport 80 -j DNAT --to 192.168.100.10:80

и iptables -A FORWARD -p tcp -d 192.168.100.10 --dport 80 -j ACCEPT

Я также попробовал iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.100.10:80

Но я все еще не могу получить доступ к 192.168.1.10 на моем компьютере с Windows. Я пишу в URL 192.168.100.10, так как я подключен к нему через wlan0, и я пытаюсь перенаправить подключение IP-камеры к этому URL.

2 ответа2

0

Когда ваш компьютер с Windows запрашивает 192.168.1.10, его таблица маршрутизации похожа на:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.100.1   0.0.0.0         UG    0      0        0 wlan0
192.168.100.0   *               255.255.255.0   U     0      0        0 wlan0

Итак, весь трафик будет проходить через ваш роутер. Ваш маршрутизатор не осведомлен о eth0-порте linux box или сети, которую вы создали на этой машине. Вы должны указать маршрутизатору направить блок 192.168.1.* ваш компьютер с Linux. Что, в зависимости от вашего роутера, может или не может быть возможным.

-1

Попробовав много методов, я наконец-то получил это на работу.

Вот что я сделал, что перенаправляет IP-адрес IP-камеры на eth0 на мое соединение wlan0, к которому я могу получить доступ с моей Windows или с любого ПК из Интернета.

И я добавил:

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 8080 -j DNAT --to 192.168.1.10:80

iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 80 -j MASQUERADE

И теперь все отлично работает. IP-адрес моей камеры (192.168.1.10:80 на eth0), если он был переадресован на IP-адрес другого моего соединения на коробке linux (192.168.100.10:8080), на wlan0.

Так что теперь, когда я нахожусь в моем компьютере с Windows, подключенным к тому же маршрутизатору, что и соединение wlan0, когда я пишу 192.168.100.10:8080, он показывает страницу входа в мою IP-камеру на 192.168.1.10.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .