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 ->
/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 ->
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
Citace od: Sadd kdy 27. 02. 2015, 22:25:44
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)
Citace od: Sadd kdy 27. 02. 2015, 22:25:44
ubuntu se snaží připojit dokonce na hanheld
Co to znamená? Typicky si chceš po tom co to provedeš prostě pingnout.
Citace od: Jenda kdy 27. 02. 2015, 23:11:00
Citace od: Sadd kdy 27. 02. 2015, 22:25:44
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)
Citace od: Sadd kdy 27. 02. 2015, 22:25:44
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 :/
Tiez som nieco podobne nedavno skusal:
Konfiguracia servera:
usb0 - interface do internetu
eth0 - interface do ethernetu
# 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?
Citace od: Jenda kdy 27. 02. 2015, 23:11:00
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.
Citace od: Sadd kdy 27. 02. 2015, 22:25:44
...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
Citace od: Jenda kdy 27. 02. 2015, 23:11:00
ifconfig nefunguje od jádra 2.2 vydaného v roce 1999.
jasne a ipv4 taky nefunguje od 1999 ;)
Citace od: Sadd kdy 27. 02. 2015, 23:38:19
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.
Citace od: Sadd kdy 27. 02. 2015, 23:38:19nicmé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.
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.
Citace od: Jenda kdy 28. 02. 2015, 04:50:22
Citace od: Sadd kdy 27. 02. 2015, 23:38:19
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:
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.
Citace od: pet kdy 28. 02. 2015, 09:05:56
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.
Citace od: pet kdy 28. 02. 2015, 09:05:56
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.
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...
Citace od: pet kdy 28. 02. 2015, 09:05:56
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
CitaceNefunguje. 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é...
Zastavení vypadá že už fixli. Ještě nefungovávalo filtrování iptables podle toho interface.
Citace od: pavele kdy 28. 02. 2015, 12:15:37
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 ;))
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) ? :)
Citace od: Jenda kdy 28. 02. 2015, 04:50:22
Citace od: Sadd kdy 27. 02. 2015, 23:38:19
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.
Citace od: Sadd kdy 27. 02. 2015, 23:38:19nicmé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".
Citace od: nobody kdy 28. 02. 2015, 01:52:16
Citace od: Sadd kdy 27. 02. 2015, 22:25:44
...obě strany píšou, že "nevidí" toho druhého, ubuntu se snaží připojit dokonce na hanheld...
Také nefunguje.
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 ?
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
Citace od: nobody kdy 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 ?
Tak jsem zkusil, nefunguje.
Access point: not associated. Nějaký tip ?
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)
Citace od: nobody kdy 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)
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ě
a zkousel si jinej usb kabel ? ;)