在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:hyprspace/hyprspace开源软件地址:https://github.com/hyprspace/hyprspace开源编程语言:Go 97.9%开源软件介绍:HyprspaceA Lightweight VPN Built on top of IPFS & Libp2p for Truly Distributed Networks. demo.mp4Table of ContentsA Bit of BackstoryLibp2p is a networking library created by Protocol Labs that allows nodes to discover each other using a Distributed Hash Table. Paired with NAT hole punching this allows Hyprspace to create a direct encrypted tunnel between two nodes even if they're both behind firewalls. Moreover! Each node doesn't even need to know the other's ip address prior to starting up the connection. This makes Hyprspace perfect for devices that frequently migrate between locations but still require a constant virtual ip address. So How Does Hyprspace Compare to Something Like Wireguard?WireGuard is an amazing VPN written by Jason A. Donenfeld. If you haven't already, definitely go check it out! WireGuard actually inspired me to write Hyprspace. That said, although WireGuard is in a class of its own as a great VPN, it requires at least one of your nodes to have a public IP address. In this mode, as long as one of your nodes is publicly accessible, it can be used as a central relay to reach the other nodes in the network. However, this means that all of the traffic for your entire system is going through that one system which can slow down your network and make it fragile in the case that node goes down and you lose the whole network. So instead say that you want each node to be able to directly connect to each other as they do in Hyprspace. Unfortunately through WireGuard this would require every node to be publicly addressable which means manual port forwarding and no travelling nodes. By contrast Hyprspace allows all of your nodes to connect directly to each other creating a strong reliable network even if they're all behind their own NATs/firewalls. No manual port forwarding required! Use Cases:A Digital NomadI use this system when travelling, if I'm staying in a rental or hotel and want to try something out on a Raspberry Pi I can plug the Pi into the location's router or ethernet port and then just ssh into the system using the same-old internal Hyprspace ip address without having to worry about their NAT or local firewall. Furthermore, if I'm connected to the Virtual Hyprspace Network I can ssh into my machines at home without requiring me to set up any sort of port forwarding. A Privacy AdvocateHonestly, I even use this system when I'm at home and could connect directly to my local infrastructure. Using Hyprspace however, I don't have to trust the security of my local network and Hyprspace will intelligently connect to my machines using their local ip addresses for maximum speed. If anyone else has some use cases please add them! Pull requests welcome!
Getting StartedPrerequisitesIf you're running Hyprspace on Windows you'll need to install tap-windows. InstallationAutomatic (Linux & MacOS)
Manual
UsageCommands
Global Flags
TutorialInitializing an InterfaceThe first thing we'll want to do once we've got Hyprspace installed is
initialize the configuration for an interface. In this case we'll call the
interface on our local machine (Note: if you're using a Mac you'll have to use the interface name (Note: if you're using Windows you'll have to use the interface name as seen in Control Panel. IP address will be set automatically only if you run Hyprspace as Administrator.) Local Machinesudo hyprspace init hs0 Remote Machinesudo hyprspace init hs1 Add Each Machine As A Peer Of The OtherNow that we've got a set of configurations we'll want to
tell the machines about each other. By default Hyprspace will
put the interface configurations in Local Machinesudo nano /etc/hyprspace/hs0.yaml and Remote Machinesudo nano /etc/hyprspace/hs1.yaml Update Peer ConfigsNow in each config we'll add the other machine's ID as a peer. You can find each machine's ID at the top of their configuration file. Update, peers: {} to peers:
10.1.1.2:
id: YOUR-OTHER-PEER-ID Notice here we'll have to pick one of our machines to be Starting Up the Interfaces!Now that we've got our configs all sorted we can start up the two interfaces! Local Machinesudo hyprspace up hs0 and Remote Machinesudo hyprspace up hs1 After a few seconds you should see a the network finish setting up and find your other machine. We can now test the connection by pinging back and forth across the network. Local Machineping 10.1.1.2 Stopping the Interface and Cleaning UpNow to stop the interface and clean up the system you can run, Local Machinesudo hyprspace down hs0 and, Remote Machinesudo hyprspace down hs1 Disclaimer & CopyrightWireGuard is a registered trademark of Jason A. Donenfeld. LicenseCopyright 2021-2022 Alec Scott [email protected] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论