RemotePI

SM0KBW

Well-Known Member
Hej,

Tänkte starta en tråd där vi beskriver och utvecklar ett remote system baserat på Raspberry Pi, RPi.

Bosse, SM6FPG och jag började samtala om detta i en annan tråd.
Vi arbetar med Raspberry Pi 3B kort och har hittils fått upp en fungerande Softether Server som kan nås utifrån,
 
Det kommer komma en beskrivning på hur vi konfigurerat Softether servern. Om man vill kan man själv titta på nätet,
det finns en uppsjö av beskrivningar om hur man bryggar ethernet enheter på RPi, vi bryggar ETH0 till en virtuell TAP enhet.
 
Så då är det dags att börja beskriva hur man gör för att få upp en Softether VPN server på Raspberry Pi.

Liten beskrivning om förutsättningarna.

Projektet har sina "rötter" i en annan tråd som SM6FPG startade, jag hakade motvilligt på för jag har misslyckats tidigare med att få upp en sådan på RPi. Men i och med att jag skriver här så har det lyckats :)

Problemet är att få till bryggningen mellan VPN och det LAN som RPi är anslutet till, utan att gå för djupt så har det med hur nätverksenheter hanteras av kärnan i Linux. Det är mycket enklare att få upp en fungerande Softether server på en Windows maskin.

Jag använder Rapberry Pi 3B men det bör fungera på alla versioner av RPi. Operativsystem är Raspbian Stretch som är den senaste versionen - har testat både med full versionen som med "lite" versionen, vilket antagligen kommer vara den som kommer användas i stugan. Det bör gå att använda andra system också, bara man vet hur man hanterar skillnaderna mellan dem.

Det mesta av arbetet sker i terminal - jag föredrar att använda SSH för att logga in på "burken", men man kan ju lika gärna starta en terminal från skrivbordet om man kör full versionen av Raspbian.


Naturligtvis är det bara roligt om någon kommer med förslag på förbättringar.
 
Installera systemet

Först av allt ska du installera Raspbian på din burk och det är bra beskrivet på deras hemsida:
https://www.raspberrypi.org/downloads/raspbian/

Det är antingen RASPBIAN STRETCH WITH DESKTOP eller RASPBIAN STRETCH LITE som är de som jag testat att använda. Stretch är aktuell just nu men det kan ändras och det är nog bäst att använda så aktuell version som möjligt.

Efter installationen bör du köra raspi-config och ändra lösenordet samt att expand disc under advanced, jag slår aven på SSH under Interfacing options.

När systemet väl är på plats ska mjukvaran hämtas och det är utmärkt beskrivet på denna sida:
http://curlybrac.es/2016/11/22/set-up-vpn-server-on-raspberry-pi/

Följ instruktionerna på den sidan och du ska ha en fungerande Softether server på din RPi.
De slarvar dock med att använda "sudo" före kommandon, antagligen för att de kör inloggade som root vilket inte är en bra vana, får du inte ett kommando att fungera eller kommentarer om behörighet skriv bara "sudo" före som sagt var.
 
Nu kommer vi till bryggningen

Det första du ska göra är att skapa en så kallad TAP - det enklaste sättet är att ladda hem Softethers VPN server manager
http://www.softether-download.com/en.aspx?product=softether

Välj server magaern och ditt operativsystem, ladda hem och installera.

Nu gäller det att du får in rätt uppgifter i profilen så du får kontakt med servern på RPi, men när du väl har lyckats så ska du välja "local bridge settings" nere i det vänstra hörnet. Då ska du se denna bild

tap.jpg

Den ska fyllas och se ut på detta sätt när du är klar

tap2.jpg

Du ska alltså skapa en ny "TAP device" som heter soft, när den finns på plats så återstår själva bryggningen i Linux.
 
Nu blir det lite terminal arbete :)

Du ska skapa en fil i /usr/local/vpnserver som heter bridge, enklast gör du det med kommandot "sudo nano /usr/local/vpnserver/bridge".

Den ska fyllas med denna text:


#!/bin/bash
/usr/local/vpnserver/vpnserver start
echo "waiting for 30 seconds"
sleep 30
echo "Switching from eth0 to br0"
# set up bridge
ip link add br0 type bridge
ip link set eth0 master br0
# flush eth0 configuration
ip addr flush dev eth0
ip link set dev br0 up
while [ -z "ifconfig | grep tap_soft" ]
do
echo "Wait for vpn adapter"
sleep 2
done
echo "Found VPN adapter, attaching to bridge."
ip link set dev tap_soft master br0
# End

Det är vid sådana här arbeten som det är bekvämt att ha SSH påslaget, det är lätt att kopiera in text i den client man använder eller om man föredrar så kan man använda t.ex winSCP och kopiera filer mellan din PC och RPi.

I värsta fall så får du skriva in det för hand.
 
Här kommer sista delen det måste läggas till lite i /etc/dhcpcd.conf, du öppnar filen med kommandot "sudo nano /etc/dhcpcd.config". Texten som ska läggas till är:


#Softether add on
interface eth0
static ip_address=192.168.0.6/24
static routers=192.168.0.254
static domain_name_servers=192.168.0.254
interface br0
static ip_address=192.168.0.6/24
static routers=192.168.0.254
static domain_name_servers=192.168.0.254

Här måste du antagligen ändra lite då jag har min Pi server på den statiska IP-adressen 192.168.0.6 - vill du använda en annan måste den ändras.

Vidare när du är uppkopplad via VPN så kommer det finnas två routrar i ditt LAN för att inte få konflikt mellan dem så lägger jag min hemrouter på 192.168.0.1 och min fjärrrouter på 192.168.0.254, om du använder något annat sätt må måste det naturligtvis också ändras.

När "/etc/dhcpcd.config" är sparad så återstår bara att göra port forward i din router för de portar du använder i softVPN.

När det är klart ska du ha en fungerande Softether server på din RPi.
 
Last edited:
Hoppas du inte väntat för länge, Micke!

Vi stannar här, men kan upplysa om att nu pågår arbete med ett radio interface till RPi, väntar på PCB från seedstudio.
Sedan har Bosse - SM6FPG väckt iden om en hembyggd front så man slipper mjukvaruversioner lokalt.
 
Last edited:
Men är det inte bra att ha något att göra under dessa "trolltider", tänker på vad som diskuteras i andra trådar :)

Visst det är mer komplicerat - detta är utanför vad du förväntas göra med RPi, man kan kanske tänka sig att spara en image
av ett installerat VPN försett system som det bara är att "bränna" ut på SD-kort. Det är väl i så fall det närmaste man kan
komma en setup.msi

Googlade lite och det finns rätt enkla verktyg för att göra en sådan image :)
 
Antar jag helt fel att sista tecknet är en nolla och inte bokstaven O i "etho" och "br0"?
Tack för en intressant tråd.

73/ Janne
If you can't stand the heat, get out of my beam direction!
 
Men är det inte bra att ha något att göra under dessa "trolltider", tänker på vad som diskuteras i andra trådar
Jo det finns det som är mera konstruktivt och intressant att göra än att "trolla"
Man får väl börja med att beställa hem en Pi så får vi se hur det går.
 
Du kan gå till kvartersbutiken, nåja Kjell&Co då, och köpa en :)

Så här lokalt kan jag göra en SD-korts kopia åt dig, jag använder 16GB kort. Det är rätt jobbigt att göra en komprimerad "image" fil
men en enkel kopia kan göras i många program - men då får man en fil som är 16GB och det blir inte så lätt att lägga upp t.ex här på
ham.se :)
 
Antar jag helt fel att sista tecknet är en nolla och inte bokstaven O i "etho" och "br0"?
Tack för en intressant tråd.

73/ Janne
If you can't stand the heat, get out of my beam direction!

Visst, så är det det är index siffror så du kan ha eth0, eth1 ...

Fler har klagat på det konstiga typsnittet på ham.se!
 
Glömde, det är ett ställe till som det måste ändras på det är i /etc/rc.local

där ska det läggas till en rad innan exit 0

lägg till en rad så det ser ut så här på slutet:

sh /usr/local/vpnserver/bridge
exit 0
 
Dessutom bör man nog ställa om bridge till att vara körbar.

sudo chmod 755 /usr/local/vpnserver/bridge

Hoppas jag inte missat något mera!
 
En uppdatering:

Jag väntar på kretskort från Seedstudio men lyckades beställa precis före det kinesiska nyåret, som
känt är så står Kina helt still under den tiden, men nu är de under produktion.

Jag har fortsätt att portera min kod som jag hade skrivit för en Arduino (Atmega328P, C kod) .

Vissa saker fungerar naturligtvis bättre på en RPi än en Arduino, problemen har mest varit kring
det faktum att Raspbian inte är ett realtidssystem. Till exempel så genererar jag en medhörningston
genom att slå av och och på en GPIO pinne och det blir jitter på den signalen, hjälper inte att låta det
skötas WiringPi, samma jitter så det är helt enkelt inte helt förutsägningsbart i ett icke realtidssystem.

Säkerhetssystemet är i vägen ibland, vill kunna göra reset innifrån mitt program att göra det är inte
trivialt i Raspbian men jag insåg efter ett tag att inget hindrar dig att ansluta reset till en GPIO port och
man har reset från user space :)

Jag väntar som sagt på mina PCB under tiden har jag testat ut olika delfunktioner.

Just nu så är det fjärrstyrning av strömbrytare, där har jag återigen problem med jitter på signalen
till den lilla 433MHz sändaren och lyckas inte styra de gamla Cohtech brytarna som jag hade liggandes.

Som experiment har jag köpt ett paket med nya brytare av märket Luxorpart från Kjell&Co, de ska kunna
tala med ett antal system bl.a Telldus och det verkar finnas dokumentation om de protokollen så det bör
gå att få till något för RPi.

Vill bara kunna slå av och på radiostationen är inte så intresserad av "home automation" i övrigt.
 
Back
Top