PI เป็นเราเตอร์ VPN สำหรับเครื่องท้องถิ่น


18

ฉันต้องการเปิดใช้งานสองเครื่องของฉันเพื่อเข้าถึงอินเทอร์เน็ตผ่านการเชื่อมต่อ VPN ความคิดของฉันคือ PI สามารถโทรออกในการสร้างการเชื่อมต่อแล้วกำหนดเส้นทางการร้องขอจากเครื่องอื่นผ่านมัน

ฉันคิดว่าการตั้งค่าเราเตอร์เริ่มต้นของอุปกรณ์เป็น IP ของ PI

ในขณะที่บางครั้งมีประสบการณ์กับการกำหนดค่าบรรทัดคำสั่งของสิ่งต่าง ๆ มากมายคุณช่วยชี้ให้ฉันดูทิศทางเกี่ยวกับแพคเกจ / บริการที่ฉันต้องการได้หรือไม่?

บทสรุปของการตั้งค่า:

  • PI เชื่อมต่อกับอินเทอร์เน็ตโดยตรงผ่านเราเตอร์เริ่มต้น
  • PI สร้างการเชื่อมต่อ VPN (OpenVPN) และฟังอินเทอร์เฟซสำหรับการรับส่งข้อมูล
  • PI สร้างการเชื่อมต่อใหม่เมื่อความล้มเหลว
  • อุปกรณ์เครือข่ายอื่น ๆ มีเกตเวย์เริ่มต้นที่ตั้งค่าเป็น IP ของ PI และการรับส่งข้อมูลทั้งหมดของพวกเขาผ่าน VPN โดยมีเงื่อนไขว่าขึ้น (และไม่มีการเชื่อมต่ออินเทอร์เน็ตหาก VPN ไม่ทำงาน)

ฉันไม่ต้องการบริการ NAT หรือ DHCP (DNS สามารถผ่าน VPN ได้)


ประเด็นคืออะไร? หากคุณใช้ Pi ของคุณในเครือข่ายท้องถิ่นเพื่อสร้างการเชื่อมต่อขาออกทำไมคุณไม่ใช้คอมพิวเตอร์เครื่องอื่นของคุณเพื่อสร้างการเชื่อมต่อขาออกที่คล้ายกันโดยตรงช่วยให้คุณประหยัดค่าใช้จ่ายของ Pi และปวดหัวของการติดตั้งซอฟต์แวร์ การตั้งค่า VPN ทั่วไปคือคอมพิวเตอร์ในเครือข่ายท้องถิ่นของคุณที่รับฟังการเชื่อมต่อขาเข้าและตรวจสอบรหัสผ่านจากนั้นให้คอมพิวเตอร์ระยะไกลใช้เครือข่ายท้องถิ่นของคุณโดยตรงไม่ใช่ในทางกลับกัน
lenik

1
@lenik ประเด็นก็คือฉันมีเครื่องมากมายที่ใช้การเชื่อมต่อ VPN เดียวกัน นอกจากนี้มันง่ายกว่ามากในการกำหนดค่าเครื่องเดียวแทนที่จะเปลี่ยนการตั้งค่าหลายเครื่องเพื่อให้แน่ใจว่าพวกเขาโทรซ้ำ ฯลฯ และคุณถูกต้อง - ไม่ใช่การตั้งค่ามาตรฐานถ้าเป็นฉันอาจจะมองหาการสอนและไม่ถาม
petr

1
ไม่ต้องพูดถึงว่าการใช้อุปกรณ์อื่นในการกำหนดเส้นทางทำให้มั่นใจได้ว่าทราฟฟิกทั้งหมดผ่าน VPN ง่ายกว่ามาก
petr

3
อุปกรณ์บางอย่างไม่สามารถเชื่อมต่อกับ VPN ได้ อุปกรณ์เหล่านี้รวมถึงเกมคอนโซลจำนวนมากและอุปกรณ์อื่น ๆ ที่ไม่ได้ใช้ระบบปฏิบัติการมาตรฐานที่สามารถกำหนดค่าให้เชื่อมต่อกับ VPN ได้อย่างง่ายดาย
Kibbee

@lenik การตั้งค่านี้เป็นเรื่องปกติในอุปกรณ์เครือข่ายระดับองค์กร มันสร้างขึ้นในเราเตอร์เริ่มต้นจากประมาณ $ 300 ขึ้นไป OP กำลังมองหาทางออกสำหรับราคาประมาณ 10 ของราคา ... เช่นเดียวกับฉัน
Philip Couling

คำตอบ:


15

ฉันมีการตั้งค่าเช่นเดียวกับคุณ:

Cable modem -> Router (192.168.1.1) +-> Raspberry Pi (192.168.1.11)
                                    |-> iPad (DHCP)
                                    |-> PC (DHCP)
                                    `-> AppleTV (DHCP)

ก่อนอื่นฉันเปลี่ยนการตั้งค่าเครือข่าย ( /etc/network/interfaces) บน RPi เป็นที่อยู่คงที่

iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

หลังจากนั้นคุณต้องติดตั้ง OpenVPN บน RPi:

sudo apt-get install openvpn

ถัดไปคุณต้องตั้งค่าไฟล์ config สำหรับ /etc/openvpn/server.confVPN ฉันใช้ตัวอย่างที่ให้บริการโดยบริการ VPN (Witopia) ของฉันและเปลี่ยนdev tunเป็นdev tun0และเพิ่มredirect-gatewayในตอนท้าย

ขั้นตอนถัดไปแก้ไข iptables เพื่ออนุญาต NAT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

หากต้องการทำให้ถาวรให้บันทึกเช่นนี้

sudo bash
iptables-save > /etc/iptables.up.rules
nano /etc/network/if-pre-up.d/iptables

เพิ่มลงในไฟล์ใหม่:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

chmod +x /etc/network/if-pre-up.d/iptablesบันทึกและทำให้มันปฏิบัติการด้วย ตอนนี้คุณต้องเปิดใช้งานการส่งต่อ IP โดยแก้ไข/etc/sysctl.confและยกเลิกหมายเหตุสายnet.ipv4.ip_forward = 1

Reboot และ RPi ควรเชื่อมต่อกับ VPN ของคุณและพร้อมรับการรับส่งข้อมูล ฉันเพิ่มตัวเลือกใหม่ในบริการ dhcp ของฉันบนเราเตอร์ของฉัน (ใช้ OpenWrt) เพื่อระบุเกตเวย์ที่ส่งไปยังไคลเอนต์ ฉันเพิ่มบรรทัดlist 'dhcp_option' '3,192.168.1.11'ลงในไฟล์/etc/config/dhcpและรีบูตเราเตอร์ ตอนนี้ iPad, PC และ AppleTV ของฉันเชื่อมต่อผ่าน RPi เพื่อเข้าถึง URL ภายนอก

แหล่งที่มา:


1
ฉันเพิ่งเสร็จสิ้นการตั้งค่าการตั้งค่าที่คล้ายกันเมื่อสัปดาห์ที่แล้ว ฉันต้องเพิ่ม "net.ipv4.tcp_ecn = 0" ลงในไฟล์ /etc/sysctl.conf ด้วย ไม่แน่ใจว่ามันทำอะไร แต่เกตเวย์จะทำงานไม่ถูกต้องหากไม่มีมัน
Kibbee

สิ่งนี้ได้ผลสำหรับฉันโดยมีการดัดแปลงหนึ่งอย่าง: กฎ NAT ควรเป็นiptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Regan Walsh

1

ปัจจุบัน PPTP เท่านั้น (รองรับ OpenVPN ที่กำลังจะมา) - ตรวจสอบโครงการของฉันที่เรียกว่า DSVR (เราเตอร์ VPN เฉพาะโดเมน) สำหรับ Raspberry Pi

รายการบล็อก - http://darranboyd.wordpress.com/2013/07/05/selective-vpn-routing-solution-dsvr/

GIThub - https://github.com/dboyd13/DSVR


0

ลอง

https://help.ubuntu.com/community/OpenVPN

Raspbian ควรจะอยู่ใกล้กับ Ubuntu มากพอเพื่อให้การตั้งค่าเหมือนกันและฉันเพิ่งตรวจสอบว่าแพ็คเกจ OpenVPN นั้นมีอยู่ใน repo Raspbian

อย่างไรก็ตามโปรดทราบว่าคำแนะนำ VPN ส่วนใหญ่จะบอกวิธีการสร้างเซิร์ฟเวอร์สำหรับการเปิด LAN ของคุณไปยังไคลเอนต์ VPN บนอินเทอร์เน็ตมากกว่าในทางกลับกันดังนั้นคุณอาจต้องทดลองเล็กน้อยด้วยการตั้งค่าการกำหนดเส้นทาง


ขอบคุณบิตที่ฉันเข้าใจดีขึ้นเล็กน้อย - สิ่งที่ฉันไม่แน่ใจว่าจะทำให้ PI ฟังการเชื่อมต่อและส่งต่อผ่าน VPN ได้อย่างไร
petr

1
@petr คุณเพียงแค่เรียกใช้ sysctl -w net.ipv4.ip_forward = 1 และให้เครื่องอื่นของคุณใช้ RPI เป็นเกตเวย์เริ่มต้นและ RPI จะมีความสุข
nos

0

ไม่ทราบว่ามีประโยชน์หรือไม่ แต่ฉันใช้ VPN กับ Raspberry Pi จากผู้ให้บริการ VPN เมื่อฉันเดินทางออกจากสหรัฐอเมริกาไปยังประเทศจีนพวกเขามีสคริปต์ dd-wrt ที่ฉันติดตั้งและทำงานได้ตั้งแต่ครั้งแรก ดังนั้นอาจเป็นไปได้ว่าคุณสามารถช่วยตัวเองได้อย่างมากหากคุณมองหาผู้ให้บริการที่มีสคริปต์ dd-wrt อยู่แล้ว หากใครอยากรู้เกี่ยวกับสคริปต์ฉันสามารถโพสต์ไว้ที่นี่



0

นี่คือเซ็ตอัพของฉันซึ่งคล้ายกับความต้องการของคุณมาก; สิ่งเดียวที่คุณต้องการติดตั้งไคลเอนต์ OpenVPN และทำการกำหนดค่าบางอย่างบน Raspbian ป้อนคำอธิบายรูปภาพที่นี่

ฉันอธิบายไว้ในบล็อกของฉัน การตั้งค่า VPN Gateway ด้วย Raspberry PI


สวัสดีและยินดีต้อนรับ! ตอนนี้ฉันไม่คิดว่าคำถาม "คุณช่วยชี้ทางให้ฉันทราบเกี่ยวกับแพคเกจ / บริการที่ฉันต้องการได้ไหมคุณช่วยชี้ไปที่ทิศทางเกี่ยวกับแพ็คเกจ / บริการที่ฉันต้องการ" มีการระบุไว้ในคำตอบ คุณช่วยอธิบายเพิ่มเติมอีกหน่อยได้ไหมโดยไม่ต้องให้คนติดตามลิงค์ (อันที่จริงแล้วเป็นเพียงรูปอีกครั้ง)?
Ghanima

@Ghanima ขอบคุณสำหรับความคิดเห็นของคุณ ฉันเปลี่ยนคำตอบแล้ว
afelaho
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.