Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: Sadd 27. 02. 2015, 22:25:44

Název: Sdílení ethernetu přes usb
Přispěvatel: Sadd 27. 02. 2015, 22:25:44
Zdravím,
 mám k notebooku připojené zařízení s linuxem, přes USB kabel, potřeboval bych nasdílet přes usb internet ->
začal jsem
hanheld ->
Kód: [Vybrat]
/etc/network/interfaces
allow-hotplug usb0
iface usb0 inet static
address 192.168.33.99
netmask 255.255.255.0
gateway 192.168.33.1
nameserver 8.8.8.8
notebook ->
Kód: [Vybrat]
ifconfig usb0 192.168.33.1
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.33.0/24 -o eth1 -j MASQUERADE
eth1 je připojení, které bych chtěl nasdílet. Boužel mi obě strany píšou, že "nevidí" toho druhého, ubuntu se snaží připojit dokonce na hanheld, ale samozřejmě to nejde. Co dělám špatně ? Díky
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Jenda 27. 02. 2015, 23:11:00
Co dělám špatně ?
ifconfig nefunguje od jádra 2.2 vydaného v roce 1999.

Je to rozhraní up? Nevím jestli ho ten ifconfig nahodil. (ip l; ip l s usb0 up)

ubuntu se snaží připojit dokonce na hanheld
Co to znamená? Typicky si chceš po tom co to provedeš prostě pingnout.
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Sadd 27. 02. 2015, 23:38:19
Co dělám špatně ?
ifconfig nefunguje od jádra 2.2 vydaného v roce 1999.

Je to rozhraní up? Nevím jestli ho ten ifconfig nahodil. (ip l; ip l s usb0 up)

ubuntu se snaží připojit dokonce na hanheld
Co to znamená? Typicky si chceš po tom co to provedeš prostě pingnout.
Ahoj, ifconfig mi z nějakého důvodu normálně funguje, nicméně jsem tedy použil "ip" pro adresu a nahození, stále ne a ne se propojit. Tím, že se snaží připojit myslím to, že "hledá dhcp server(nejspíš) na síti 192.168.33.0". Takže stále nic :/
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: wakatana 27. 02. 2015, 23:39:43
Tiez som nieco podobne nedavno skusal:

Konfiguracia servera:
usb0 - interface do internetu
eth0 - interface do ethernetu

Kód: [Vybrat]
# stop network manager
sudo systemctl stop NetworkManager.service
/etc/init.d/network-manager stop

# enable interface
ifconfig eth0 up

# configure IP address on interface (different range than usb0)
ifconfig eth0 192.168.2.1

# enable routing
echo 1 > /proc/sys/net/ipv4/ip_forward

# enable NAT
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
iptables -t filter -A FORWARD -i eth0 -o usb0 -j ACCEPT
iptables -t filter -A FORWARD -i usb0 -o eth0 -j ACCEPT

Konfiguracia klienta (PC spojeny s ethernetovym kablom so serverom na porte eth0):
IP:     192.168.2.2
MASKA:  255.255.255.0
GW:     192.168.2.1
DNS:    192.168.2.1


Pokial sa dobre pamatam tak klient nevedel z nejakeho dovodu spravne resolvovat DNS. Nevie niekto preco?
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: JardaP . 27. 02. 2015, 23:44:45
ifconfig nefunguje od jádra 2.2 vydaného v roce 1999.

Ifconfig nefunguje? Ifconfig je "deprecated" na nekterych distrech, dost mozna tam uz ani neni. Ale na Debianu a Ubuntu je a nefunkcnosti jsem si nevsiml. Sice se doporucuje prejit na ip, ale ifconfig by fungovat mel. Je nicmene mozne, ze s nekterymi vecmi nefunguje, treba s USB jsem ho nikdy nezkousel.
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: nobody 28. 02. 2015, 01:52:16
...obě strany píšou, že "nevidí" toho druhého, ubuntu se snaží připojit dokonce na hanheld...

nejdriv oziv spojeni hanheld_usb<->pc_usb, pak res sdileni... v ubuntu (network-manager) vypni pro usb "Automaticky spojit" (vydrzi do restartu hanheldu kdy se mu na 99% zmeni mac adresa)

hanheld: ifconfig usb0 192.168.33.99 netmask 255.255.255.0 up
pc:  ifconfig usb0 192.168.33.1 netmask 255.255.255.0 up
a zkus propingovat z obou stran

ifconfig nefunguje od jádra 2.2 vydaného v roce 1999.

jasne a ipv4 taky nefunguje od 1999 ;)
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Jenda 28. 02. 2015, 04:50:22
Ahoj, ifconfig mi z nějakého důvodu normálně funguje

Zkus si třeba na rozhraní nastavit víc IP adres a uvidíš příklad toho jak nefunguje.

nicméně jsem tedy použil "ip" pro adresu a nahození, stále ne a ne se propojit. Tím, že se snaží připojit myslím to, že "hledá dhcp server(nejspíš) na síti 192.168.33.0". Takže stále nic :/

Proč by měl hledat DHCP, když nastavuješ ty dvě IP staticky?

Čuchám čuchám nějaký network manager, který to celé rozbíjí. Zkus ho vypnout.
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Jenda 28. 02. 2015, 04:52:29
Mimochodem zkus na obou stranách "ip a", jestli je zařízení UP a jestli má opravdu tu IP adresu kterou chceš (např. pokud jsi na tom handheldu zapomněl po změně konfigurace restartovat síťování). Pak je taky dobré pustit tcpdump/wireshark a koukat jestli chodí alespoň ARP probes.
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: pet 28. 02. 2015, 09:05:56
Ahoj, ifconfig mi z nějakého důvodu normálně funguje

Zkus si třeba na rozhraní nastavit víc IP adres a uvidíš příklad toho jak nefunguje.


Myslíš takto:
Kód: [Vybrat]
petkub ~ # ifconfig
lo: flags=73<AKTIVOVÁNO,SMYČKA,BĚŽÍ>  mtu 65536
        inet 127.0.0.1 síťová_maska 255.0.0.0
        loop délka_odchozí_fronty 0  (Místní smyčka)
        RX packetů 29  bajtů 4856 (4,7 KiB)
        RX chyb 0  zahozeno 0  přetečení 0  rámců 0
        TX packetů 29  bajtů 4856 (4,7 KiB)
        TX chyb 0  zahozeno 0  přetečení 0  přenos 0  kolizí 0

petkub ~ # ifconfig eth0 192.168.0.1/24 up
petkub ~ # ifconfig eth0:1 192.168.1.1/24
petkub ~ # ifconfig eth0:2 192.168.2.1/24
petkub ~ # ifconfig
eth0: flags=4099<AKTIVOVÁNO,VŠESMĚR,MULTICAST>  mtu 1500
        inet 192.168.0.1 síťová_maska 255.255.255.0  všesměr 192.168.0.255
        ether 20:1a:06:5e:dc:d1 délka_odchozí_fronty 1000  (Ethernet)
        RX packetů 0  bajtů 0 (0,0 B)
        RX chyb 0  zahozeno 0  přetečení 0  rámců 0
        TX packetů 0  bajtů 0 (0,0 B)
        TX chyb 0  zahozeno 0  přetečení 0  přenos 0  kolizí 0

eth0:1: flags=4099<AKTIVOVÁNO,VŠESMĚR,MULTICAST>  mtu 1500
        inet 192.168.1.1 síťová_maska 255.255.255.0  všesměr 192.168.1.255
        ether 20:1a:06:5e:dc:d1 délka_odchozí_fronty 1000  (Ethernet)

eth0:2: flags=4099<AKTIVOVÁNO,VŠESMĚR,MULTICAST>  mtu 1500
        inet 192.168.2.1 síťová_maska 255.255.255.0  všesměr 192.168.2.255
        ether 20:1a:06:5e:dc:d1 délka_odchozí_fronty 1000  (Ethernet)

lo: flags=73<AKTIVOVÁNO,SMYČKA,BĚŽÍ>  mtu 65536
        inet 127.0.0.1 síťová_maska 255.0.0.0
        loop délka_odchozí_fronty 0  (Místní smyčka)
        RX packetů 29  bajtů 4856 (4,7 KiB)
        RX chyb 0  zahozeno 0  přetečení 0  rámců 0
        TX packetů 29  bajtů 4856 (4,7 KiB)
        TX chyb 0  zahozeno 0  přetečení 0  přenos 0  kolizí 0
petkub ~ # uname -a
Linux petkub 3.18.7-gentoo #1 SMP Tue Feb 24 10:32:51 CET 2015 x86_64 AMD A8-4500M APU with Radeon(tm) HD Graphics AuthenticAMD GNU/Linux
petkub ~ #
No tak to samozřejmě funguje. Ale pravda je, že pomocí ip lze nastavit více věcí a někdy i snadněji než pomocí ifconfig a route.
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Filip Jirsák 28. 02. 2015, 09:18:04
No tak to samozřejmě funguje.
Nefunguje. Zkuste si třeba jedno z těch rozhraní zastavit. Ve skutečnosti zastavíte všechno na eth0, protože je tam jenom jediné rozhraní, a ta ostatní si ifconfig vymyslel.

Ale pravda je, že pomocí ip lze nastavit více věcí a někdy i snadněji než pomocí ifconfig a route.
Ono nejde ani tak o to, že by přes ip šlo nastavit víc věcí. Podstatné je hlavně to, že ifconfig na Linuxu pouze emuluje své chování a snaží se konfiguraci sítě tak, jak je nastavená v jádru, namapovat na své schéma sítě. Někdy se mu to podaří celkem obstojně, někdy moc ne a někdy vůbec. Problém tedy je v tom, že s ifconfigem na linuxu nikdy nevíte, jak máte síť doopravdy nastavenou.
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: nobody 28. 02. 2015, 09:33:30
ifconfig pro spojeni s g_ether na hanheldu je naprosto dostatecne, netreba resit desitky siti na usb0 a jejich samostatne vypinani, o to tazateli preci vubec nejde...
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Lol Phirae 28. 02. 2015, 09:33:50
No tak to samozřejmě funguje.

Ještě, že sem nechodí kolega Kubeček (https://www.google.com/?gws_rd=ssl#q=ifconfig+kube%C4%8Dek+site:abclinuxu.cz)  ;D
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: pavele 28. 02. 2015, 12:15:37

Citace
Nefunguje. Zkuste si třeba jedno z těch rozhraní zastavit. Ve skutečnosti zastavíte všechno na eth0

To by mi asi nefungoval můj skriptík "samba harbík", který jsem napsal asi před 10 lety - část "server":  :)



#!/bin/bash

#Tento spustitelny soubor se ma chovat jako daemon.
#Spousti se prikazem:
#nohup /cesta/cikl1server >&/dev/null&
#`nohup /cesta/cikl1server >/dev/null 2>&1&`
#Ukoncuje se prikazem:
#kill $(pgrep cikl1server) >/dev/null 2>&1

#Program na zalohovani dat potrebuje prava root pro programy
#ifconfig, /etc/rc.d/init.d/smb, ping a ip (balicek iproute)
#Upravi se soubor /etc/sudoers, aby vypadal takto:
#uzivatel jmenopc=bez_hesla: /prikaz
#karlik     karlikp3=NOPASSWD: /usr/sbin/hibernate
#uzivatel  vse=bez_hesla: /prikaz
#karlik1     ALL=NOPASSWD: /etc/rc.d/init.d/smb
#karlik1     ALL=NOPASSWD: /bin/ping
#karlik1     karlikp3=NOPASSWD: /sbin/ifconfig
#karlik1     karlikp3=NOPASSWD: /usr/bin/rsync
#karlik1     karlikp3=NOPASSWD: /sbin/ip

ipnet="192.168.5.0"
ipbcast="192.168.5.255"
ipgateway="192.168.5.254"
ipdnsserver="192.168.5.254"
ipserver="192.168.5.34"
ipsmbserver="192.168.5.33"
ethsmbserver="eth0:0"
mylog="/datalog_bin/kiss-heartbeat/logcikl"

#Pokud dojde k pokusu ukoncit skript pomoci kill, trap vola funkci skonci.
#Skript se tedy ukonci az po pruchodu cele smycky.
#Na konci smycky je umisteno:
#[ "$prerus" == "ano" ] && exit 1

# Number     SIG        Meaning
#  0         0          On exit from shell
#  1         SIGHUP     Clean tidyup
#  2         SIGINT     Interrupt
#  3         SIGQUIT    Quit
#  6         SIGABRT    Abort
#  9         SIGKILL    Die Now (cannot be trap'ped)
#  14        SIGALRM    Alarm Clock
#  15        SIGTERM    Terminate

#Poznamka - signal kill -9 (kill -SIGKILL) je nezachytitelny a ukoncuje proces "natvrdo".

trap 'skonci' 1 2 3 6 15
prerus="ne"

function skonci {
prerus="ano"
}

#############################################################################
#Zacatek cyklu
#############################################################################
for ((;;))
do

#Nedavat tento radek na jine misto. Zacykleni zaruceno, funguje poze SIGKILL (kill -9)
#Nedavat tento radek na jine misto. Zacykleni zaruceno, funguje poze SIGKILL (kill -9)
if [ "$prerus" = "ano" ]
  then    
    caskonec=`date +"%Y%m%d%H%M"`
    echo "$caskonec Program ukoncen. Ukoncuji Sambu na ipsmbserver. Odpojuji eth0:0 " >>"$mylog"
    /etc/rc.d/init.d/smb stop >/dev/null 2>&1
    #Clear ARP Cache
    #Flush all arp enties on interface eth0:0
    ip neigh flush dev "$ethsmbserver"
    #Flush arp entry for all hosts in network 192.168.5.0/24
    ip neigh flush "$ipnet" >/dev/null 2>&1
    #Flush all arp entries:
    #ip neigh flush all
    ifconfig "$ethsmbserver" down >/dev/null 2>&1
    exit 1
fi

sleep 60
cas2=`date +"%Y%m%d%H%M"`

#Pokud nejede ethernet, preskoc na konec skriptu (pred done)
#if ! ping "$ipserver" -c 2 -W3 >/dev/null 2>&1
#  then
#     echo "$cas2 Sit nejede." >>"$mylog"
#     continue
#fi
 
#Pokud nejede ethernet, preskoc na konec skriptu (pred done)
if [ "$(cat /sys/class/net/eth0/carrier)" = "0" ]
  then
    echo "$cas2 Sit nejede." >>"$mylog"
    continue
fi

pgrep smbd >/dev/null 2>&1
clientsmbd=$?
#clientsmb="$?"
#clientsmb=$(($?))

smbclient -N -L "$ipsmbserver" >/dev/null 2>&1
#smbclient -U% -L "$ipsmbserver" >/dev/null 2>&1
serversmbd=$?

#pokud smb na PC nejede a smb na ipsmbserver nejede a ethernet jede, spust smb na ipsmbserver
if [ "$clientsmbd" = "1" ] && [ "$serversmbd" = "1" ] && [ "$(cat /sys/class/net/eth0/carrier)" = "1" ]
  then
    echo "$cas2 Samba na PC nejede a ipsmbserver nejede. Spoustim Sambu na ipsmbserver." >>"$mylog"
    /sbin/ifconfig "$ethsmbserver" "$ipsmbserver"
    /sbin/ifconfig "$ethsmbserver" up
    #Clear ARP Cache
    #Flush all arp enties on interface eth0:0
    ip neigh flush dev "$ethsmbserver"
    #Flush arp entry for all hosts in network 192.168.5.0/24
    ip neigh flush "$ipnet"
    #Flush all arp entries:
    #ip neigh flush all
    #Ping the gateways and DNS to clear the ARP cache
    ping -c 2 -w 3 -I "$ipsmbserver" "$ipdnsserver"
    ping -c 2 -w 3 -I "$ipsmbserver" "$ipgateway"
    #Ping the external broadcast addres to clear the ARP cache
    ping -c 2 -b -w 3 -I "$ipsmbserver" "$ipbcast"
    /etc/rc.d/init.d/smb start
fi

#pokud smbd na PC jede a smbd na ipsmbserver nejede, ukonci smb na PC
#(Spustena Samba, na chvili odpojen ethernetovy kabel)
if [ "$clientsmbd" = "0" ] && [ "$serversmbd" = "1" ]
  then
  echo "$cas2 Samba na PC jede a serversmbd nejede. Ukoncuji Sambu na ipsmbserver." >>"$mylog"
  /etc/rc.d/init.d/smb stop >/dev/null
  #Clear ARP Cache
  #Flush all arp enties on interface eth0:0
  ip neigh flush dev "$ethsmbserver"
  #Flush arp entry for all hosts in network 192.168.5.0/24
  ip neigh flush "$ipnet"
  #Flush all arp entries:
  #ip neigh flush all
  /sbin/ifconfig "$ethsmbserver" down
fi
done


A ano, mělo by se používat ip. Ovšem co se týče dokumentace ip, je to tragické...
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Jenda 28. 02. 2015, 15:15:19
Zastavení vypadá že už fixli. Ještě nefungovávalo filtrování iptables podle toho interface.

A ano, mělo by se používat ip. Ovšem co se týče dokumentace ip, je to tragické...
Co ti tam vadí?

(pozn. posledně když si někdo stěžoval na dokumentaci ip, tak koukal jenom do man ip, a nevšiml si, že na konci jsou další kapitoly jako třeba ip-address. tak jenom jestli to není taky tvůj případ ;))
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: nobody 28. 02. 2015, 23:23:33
to je prave ono, dokumentace ip je schizofreni a ma implementovan rebus ;) proc nema "man ip" subsekce ip objektu ale jsou samostatne man pages pro neexistujici commands ? tedy proc informace o "ip link" najdes v manualu ip-link ? proc tedy alespon neni ip-link symlink na ip (a ip s detekci symlinku jako parametr) ? :)
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Sadd 28. 02. 2015, 23:33:52
Ahoj, ifconfig mi z nějakého důvodu normálně funguje

Zkus si třeba na rozhraní nastavit víc IP adres a uvidíš příklad toho jak nefunguje.

nicméně jsem tedy použil "ip" pro adresu a nahození, stále ne a ne se propojit. Tím, že se snaží připojit myslím to, že "hledá dhcp server(nejspíš) na síti 192.168.33.0". Takže stále nic :/

Proč by měl hledat DHCP, když nastavuješ ty dvě IP staticky?

Čuchám čuchám nějaký network manager, který to celé rozbíjí. Zkus ho vypnout.
Network manager vypnut, stále se "nenajdou".

...obě strany píšou, že "nevidí" toho druhého, ubuntu se snaží připojit dokonce na hanheld...
Také nefunguje.


Název: Re:Sdílení ethernetu přes usb
Přispěvatel: nobody 28. 02. 2015, 23:49:35
tak zkus na pc ping usb ip pc, na handheldu ping usb ip handheldu
taky zkoukni na obouch ifconfig jestli zobrazi usb0, s tou ip co si nastavil a "rozsah: Linka" (nebo anglicky "scope: Link")

btw: co je to za handheld ? co tam bezi za os, jake jadro ?
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Sadd 01. 03. 2015, 00:02:53
Kernel: 2.6.21-hh20
Jedna se o htc universal s Titchy Linux(Debian based), dokumentace už se těžko hledá :/ diky za pomoc
// zkusím zítra, ale vše sedělo
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Sadd 01. 03. 2015, 22:38:14
tak zkus na pc ping usb ip pc, na handheldu ping usb ip handheldu
taky zkoukni na obouch ifconfig jestli zobrazi usb0, s tou ip co si nastavil a "rozsah: Linka" (nebo anglicky "scope: Link")

btw: co je to za handheld ? co tam bezi za os, jake jadro ?
Tak jsem zkusil, nefunguje.
Access point: not associated. Nějaký tip ?
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: nobody 01. 03. 2015, 23:33:06
tip ? nepsat sem hlasky o nenakonfigurovane wifi kdyz resime usb0 network :-D
z ceho je to hlaska ? z pc kdyz priradis ip pro pc usb0 a zkusis tuto ip pingnout ?
zkus na pc vypnout wifi/eth1/eth0/cokoliv a nech pripojeno jen usb s handheldem

jinak na strane handheldu asi chyba nebude, pokud si neco v puvodnim rootfs nerozvrtal :) pocitam ze postup na usb network jsi vycetl zde v postupu pro usb network pro htc universal s TitchyLinux (btw: je to v podstate totozne pro vsechna pda/phone s usb ethernet gadget)
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: Sadd 02. 03. 2015, 20:55:16
tip ? nepsat sem hlasky o nenakonfigurovane wifi kdyz resime usb0 network :-D
z ceho je to hlaska ? z pc kdyz priradis ip pro pc usb0 a zkusis tuto ip pingnout ?
zkus na pc vypnout wifi/eth1/eth0/cokoliv a nech pripojeno jen usb s handheldem

jinak na strane handheldu asi chyba nebude, pokud si neco v puvodnim rootfs nerozvrtal :) pocitam ze postup na usb network jsi vycetl zde v postupu pro usb network pro htc universal s TitchyLinux (btw: je to v podstate totozne pro vsechna pda/phone s usb ethernet gadget)
Pardon, to už jsem zas zkoušel wifi :D :D
No situace se má takhle:
i když zapíšu do interfaces to nastavení, tak stejně po spuštění nemá usb0 danou ip adresu -> nastavím jí ručně pak jsou tři možnosti:
1) píše mi network is unreachable  //nevím jestli to není ovladačem k usb
2) nepingne na ntb
3) pingne, ale na 8.8.8.8 už nepingne -> network is unreachable
// nastavuji to pokaždé stejně
Název: Re:Sdílení ethernetu přes usb
Přispěvatel: nobody 02. 03. 2015, 22:25:39
a zkousel si jinej usb kabel ? ;)