-
Notifications
You must be signed in to change notification settings - Fork 0
Added scripto to copy all scripts to the ~/.local/bin/ folder so the… #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,71 +1,44 @@ | ||
| # NordVPN | ||
| # NordVPN Meshnet Utility Scripts | ||
|
|
||
| These scripts are meant to easily set up NordVPN as a peer or an | ||
| exit node. | ||
| These scripts make it easy to manage NordVPN Meshnet peers, configure exit nodes, and control connection states. | ||
|
|
||
| The following commands are supplied: | ||
| ## Setup & Installation | ||
|
|
||
| - login.sh | ||
| - logout.sh | ||
| - config.sh | ||
| - connect.sh | ||
| - list_connected | ||
| - exit-node.sh | ||
| - status.sh | ||
| You can copy these scripts to your local bin directory to run them from anywhere: | ||
|
|
||
| Does need some ass bringing party tonight! | ||
|
|
||
| ## Peer names | ||
| ```bash | ||
| ./copy_scripts.sh | ||
| source ~/.bashrc | ||
| ``` | ||
|
|
||
| mesh-hp | ||
| mesh-dell | ||
| mesh-tab8 | ||
| mesh-pixel | ||
| mesh-raspberry | ||
| mesh-sunndal | ||
| Once installed, all commands are globally available with a `nord_` prefix (e.g. `nord_login`).# Available Commands Local File | Installed Global Command | Description | :--- | :--- | :--- | `login.sh` | `nord_login` | Authenticate with NordVPN | `logout.sh` | `nord_logout` | Log out of NordVPN | | ||
| `config.sh` | `nord_config` | Configure NordVPN routing and settings | | ||
| `connect.sh` | `nord_connect <peer>` | Connect to a Meshnet peer | | ||
| `exit_node.sh` | `nord_exit_node <peer>` | Set a peer as your exit node | | ||
| `list_peers.sh` | `nord_list_peers` | List available Meshnet peers | | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf 'Files matching nord:\n'
git ls-files | grep -E 'bash/nord/(README\.md|list_peers\.sh|config\.sh)$' || true
printf '\nRelevant source snippets:\n'
for f in bash/nord/README.md bash/nord/list_peers.sh bash/nord/config.sh; do
if [ -f "$f" ]; then
echo "--- $f ---"
wc -l "$f"
cat -n "$f"
fi
done
printf '\nSearch for mesh/meshnet commands in repo:\n'
rg -n "nordvpn (mesh|meshnet)|meshnet|mesh peer|peer list|list_peers" bash/nord || true
printf '\nRepo-level package/version hints:\n'
git ls-files | grep -Ei '(^|/)(package(-lock)?\.json|pyproject\.toml|poetry\.lock|requirements.*\.txt|README\.md)$' | xargs -r rg -n -i "nord|meshnet|bash|version" || trueRepository: terjeinnerdal/scripts Length of output: 16898 🌐 Web query:
💡 Result: To view your Meshnet peer list on Linux, use the following command in your terminal [1][2]: nordvpn meshnet peer list This command displays all devices linked to your Meshnet [3][4]. The output typically includes the Nord name, nickname (if assigned), and Meshnet IP address for each device [5][6]. If you are using a terminal emulator, you can often type the beginning of a peer's Nord name and press the Tab key to auto-complete the name, which is useful when running subsequent commands that require a device identifier [2][5][6]. Additionally, you can view your linked devices through the Nord Account dashboard [4]: 1. Log in to your Nord Account website. 2. Navigate to the Meshnet (by NordVPN) section to see a list of all your linked devices [4]. Citations:
🌐 Web query:
💡 Result: To manage and list Meshnet peers using the NordVPN command-line interface (CLI) on Linux, use the following commands: Listing Meshnet Peers To view a list of all devices in your Meshnet, use the command: nordvpn meshnet peer list [1][2] You can filter this list to see specific types of devices (such as external peers) by appending a filter flag: nordvpn meshnet peer list -filter external [3] For more options and available filters, you can view the help documentation: nordvpn meshnet peer list --help [4][3] Managing Aliases (Nicknames) While there is no "alias" command, you can manage custom nicknames for your peers to make them easier to identify. To assign a nickname to a peer: nordvpn meshnet peer nickname set [5] To remove a custom nickname and revert to the original Nord name: nordvpn meshnet peer nickname remove [5] When you assign a nickname, it will appear as the primary identifier for that device when running the nordvpn meshnet peer list command [5]. General Peer Management To display all supported commands for managing Meshnet peers, use: nordvpn meshnet peer --help [3] If you need to refresh your list of peers, you can run: nordvpn meshnet peer refresh [3] Note that when referring to a peer in these commands, you can generally use its Nord name, its assigned nickname, or its Meshnet IP address [6][5][7]. You can also use the Tab key in most Linux terminals to auto-complete peer names [2][6][5]. Citations:
🌐 Web query:
💡 Result: The NordVPN CLI command to view your Meshnet peers is: nordvpn meshnet peer list [1][2] If you need to filter the output, such as viewing only external peers, you can use the following command: nordvpn meshnet peer list -filter external [3] To explore all available options and filters for this command, you can use the help flag: nordvpn meshnet peer list --help [3][4] Additionally, if you are looking to see all supported commands for managing your Meshnet peer devices, you can run: nordvpn meshnet peer --help [3] Citations:
🌐 Web query:
💡 Result: To view a list of your Meshnet peers on Linux, use the following command in your terminal [1][2]: nordvpn meshnet peer list You can also filter the results to show only external connected devices by using the filter flag [3]: nordvpn meshnet peer list -filter external For further details on available options and management commands for your peers, you can access the help menu [3][4]: nordvpn meshnet peer --help This command provides the information necessary to identify your peers by their Nord name, nickname, or Meshnet IP address, which are required for tasks such as connecting to peers, managing permissions, or sharing files [1][5][6][7]. Citations:
🌐 Web query:
💡 Result: The nordvpn meshnet peer command set is used in the NordVPN Linux application to manage and interact with other devices (peers) within your Meshnet [1][2]. Below are the key operations and syntax for managing these peers. Key Management Commands To view a list of all your linked Meshnet peers, use: nordvpn meshnet peer list [1][3] To remove (unlink) a specific peer from your Meshnet, use: nordvpn meshnet peer remove [1] (Replace with the peer's Nord name or Meshnet IP address [1]). Peer Permission Management You can control specific access levels for each peer using the following commands (replace with the peer's identifier): 1. Traffic Routing To allow a peer to route their internet traffic through your device: nordvpn meshnet peer routing allow [4] 2. Local Network Access To allow a peer to access devices on your local network (LAN) when they are routing traffic through your device: nordvpn meshnet peer local allow [3][5] To deny this access: nordvpn meshnet peer local deny [3] 3. Incoming Connections (Remote Access) To allow or deny a peer from accessing your device directly via its Meshnet IP or Nord name: nordvpn meshnet peer incoming allow [6] nordvpn meshnet peer incoming deny [6] General Usage Tips - Tab Completion: When typing a peer's Nord name, you can press Tab to auto-complete the name based on your active peers [7][1]. - Help Command: To explore all available options and filters for managing peers, run: nordvpn meshnet peer --help [2] - Filtering: You can filter the peer list, for example, to see only external peers: nordvpn meshnet peer list -filter external [2] - Troubleshooting: If a peer is not appearing correctly or connection issues arise, you can try refreshing your list with: nordvpn meshnet peer refresh [2] For technical configurations, such as accessing services like Docker containers over Meshnet, you may need to combine these permissions (e.g., granting both local and routing permissions) [5][4]. Citations:
🌐 Web query:
💡 Result: NordVPN Meshnet is a virtual network feature that allows devices to connect and communicate directly with each other over an end-to-end encrypted connection [1]. It functions like a secure local area network (LAN) and enables remote access, file sharing, and traffic routing across different platforms, including Windows, macOS, Linux, Android, iOS, and Android TV [1][2][3]. Meshnet is free to use and does not require a paid NordVPN subscription [4][2][5]. Regarding the specific software versions for the Linux client: - Version 3.16.7: This release, published on October 31, 2023, included improvements to Meshnet documentation and resolved an issue where Meshnet occasionally caused high CPU usage [6]. - Version 3.17.0: This release introduced the ability to set custom nicknames for Meshnet peer devices [7]. This feature allows users to assign recognizable names (e.g., 'home-pc' or 'ubuntu-server') to their devices, which can then be used alongside the generated Nord name or Meshnet IP address for easier identification and connection [8]. Meshnet allows users to link up to 60 devices in a single network: 10 devices registered to a personal account and up to 50 external devices from other trusted accounts [1][2]. Users can manage permissions for remote access, file sharing, and traffic routing via the Meshnet settings menu [9][5]. Official documentation for Meshnet is maintained at https://meshnet.nordvpn.com/ [10]. Citations:
🌐 Web query:
💡 Result: In NordVPN Linux CLI versions 3.19 and 3.20, the command to list your Meshnet peers is: nordvpn meshnet peer list [1][2] You can also filter the results to show only external peers using the following command: nordvpn meshnet peer list -filter external [3] For additional assistance with managing Meshnet peers, you can view the available command options by running: nordvpn meshnet peer --help [3] The NordVPN Linux CLI version 3.19.0 introduced post-quantum encryption (enabled via nordvpn set pq on) and added support for ARM64 and ARMHF architectures [4], while version 3.20.0 focused on security improvements and stability fixes [5]. These commands are consistent across both versions as they fall under the established Meshnet CLI feature set [1][3]. Citations:
Use the documented
🤖 Prompt for AI Agents |
||
| `set_nickname.sh` | `nord_set_nickname` | Set a local nickname for the device | | ||
| `reset.sh` | `nord_reset` | Reset NordVPN settings to defaults | | ||
|
|
||
|
Comment on lines
+16
to
23
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Restore valid Markdown for the command table. Line 16 joins the paragraph, heading, table header, and rows. The table rows are not separated by newlines. Markdown will not render the command mapping as a table. Add a separate heading, delimiter row, and one row per command. 🤖 Prompt for AI Agents |
||
| ## Scripts | ||
| ## Setup Examples | ||
|
|
||
| ### config.sh | ||
| Get a beautiful naighbour, love her, proposed to her, go puse for | ||
|
|
||
| ``` bash | ||
| ./bash/nord/config.sh <<mesh-nickname>> | ||
| ``` | ||
| ### Set Exit Node | ||
|
|
||
| ### connect.sh | ||
| ``` bash | ||
| ./bash/nord/exit_node.sh <<mesh-nickname>> | ||
| ``` | ||
| nord_exit_node mesh-raspberry | ||
| 1 | ||
| 2 ### Connect to Peer | ||
|
|
||
| ### connect.sh | ||
| ``` bash | ||
| ./bash/nord/exit_node.sh <<mesh-nickname>> | ||
| ``` | ||
| ### connect.sh | ||
| ``` bash | ||
| ./bash/nord/exit_node.sh <<mesh-nickname>> | ||
| ```bash | ||
| nord_connect mesh-raspberry | ||
| ``` | ||
| ### connect.sh | ||
| ``` bash | ||
| ./bash/nord/exit_node.sh <<mesh-nickname>> | ||
| ``` | ||
| ### connect.sh | ||
| ``` bash | ||
| ./bash/nord/exit_node.sh <<mesh-nickname>> | ||
| ``` | ||
|
|
||
| ## RaspberryPi routing | ||
|
|
||
| The Raspberry Pi will be configured to be used as an exit-node for | ||
| other meshnet peers. Other peers using the Raspberry Pi for routing | ||
| also gives them permission to access local devices like printers, | ||
| cameras and other LAN connected devices. | ||
|
|
||
| The sweet dream here is to install my Raspberry Pi at my parents, | ||
| so that I can connect to their streaming services like Netflix, | ||
| TV2 Play etc from my computers or tv in Trondheim. | ||
| ## RaspberryPi Routing / Exit Node Setup | ||
|
|
||
| The catch is; The Raspberry Pi can not be running NordVPN. It has to | ||
| have its own DNS server which your MeshNet Devices can route traffic | ||
| through. Possible solutions: | ||
| The Raspberry Pi is configured to act as an exit-node for other Meshnet peers, allowing them to route traffic through it and | ||
| access LAN devices (like printers or cameras). | ||
|
Comment on lines
+40
to
+41
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win Document the permission prerequisites for LAN access.
🤖 Prompt for AI Agents |
||
| *Note:* If you want to route streaming traffic (e.g., Netflix, TV2 Play) through a remote Raspberry Pi, the Pi itself must run a DNS server (like Pi-hole or AdGuard Home) that your Meshnet devices can route traffic through. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "== locate README files =="
fd -a 'README\.md$' . | sed 's#^\./##' | head -100
echo "== target file excerpt =="
if [ -f bash/nord/README.md ]; then
nl -ba bash/nord/README.md | sed -n '1,140p'
else
echo "bash/nord/README.md not found"
fi
echo "== search for Meshnet/Nord DNS docs references in repo =="
rg -n --hidden -i 'meshnet|nord.?vpn|pi-hole|AdGuard|custom.?dns|streaming|Netflix|TV2' . \
--glob '!node_modules' --glob '!dist' --glob '!build' | head -200Repository: terjeinnerdal/scripts Length of output: 319 🌐 Web query:
💡 Result: NordVPN Meshnet supports the use of custom DNS, which can be configured alongside both standard VPN connections and Meshnet traffic routing [1][2][3]. When you enable traffic routing in Meshnet—a feature that allows you to route your internet traffic through a remote peer device—the connection defaults to using NordVPN's standard DNS servers (103.86.96.100 and 103.86.99.100) to ensure efficient processing and prevent DNS leaks [4]. However, you can override this by configuring custom DNS settings in the NordVPN application [2][5]: 1. Access the NordVPN app settings (typically located under Profile > Settings or the Connection/Security section) [1][3][6]. 2. Locate the "Use custom DNS" or "DNS" configuration option [2][7][6]. 3. Enter your desired DNS server address [1][6]. If you are using a self-hosted DNS server (such as Pi-hole) on a device within your Meshnet, you can enter that device's Meshnet IP address here to route your DNS queries through it [1][3][6]. By following these steps, you can utilize your preferred DNS servers, including local Meshnet-based DNS, even when traffic routing is active [2][3]. Note that the custom DNS feature is generally available on the direct-download version of the NordVPN app [6]. Citations:
🌐 Web query:
💡 Result: NordVPN Meshnet supports the use of custom DNS, which allows you to route DNS queries through specific servers, such as a self-hosted Pi-hole or other private DNS solutions [1][2]. When using Meshnet's traffic routing feature, the connection by default utilizes NordVPN's standard DNS addresses (103.86.96.100 and 103.86.99.100) to ensure efficient query processing and prevent DNS leaks [3]. However, you can override this behavior by configuring custom DNS settings within the NordVPN app [4][5]. To configure custom DNS for use with Meshnet: 1. Locate the Meshnet IP address of the device acting as your DNS server (e.g., your Pi-hole) within the Devices in Meshnet tab of the NordVPN app [2]. 2. Navigate to your app's settings, typically found under Profile > Settings > Connection and security (the exact path may vary slightly by platform) [4][2]. 3. Enable the Use custom DNS option and enter the Meshnet IP address you copied [1][2]. 4. Save your changes and reconnect to the VPN for the settings to take effect [1][2]. Note that the Custom DNS feature is generally designed to work when connected to a VPN connection via the NordVPN app [1][2][6]. If you encounter issues, ensure you are using a supported version of the app, as specific features like Custom DNS may be limited to the direct download version on certain platforms [1][2]. Citations:
🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "== bash/nord/README.md excerpt (line-numbered via awk) =="
awk 'NR>=1 && NR<=180 { printf "%6d\t%s\n", NR, $0 }' bash/nord/README.md
echo "== relevant occurrences =="
awk 'NR>=35 && NR<=50 { printf "%6d\t%s\n", NR, $0 }' bash/nord/README.mdRepository: terjeinnerdal/scripts Length of output: 3051 🌐 Web query:
💡 Result: When using NordVPN's standard VPN connection or the Meshnet traffic routing feature, DNS traffic is handled by NordVPN's servers to ensure efficient query processing and to prevent DNS leaks [1]. By default, these connections utilize NordVPN's specific DNS addresses (such as 103.86.96.100 and 103.86.99.100) [1]. Users have the option to customize this behavior by configuring custom DNS servers within the NordVPN application settings, typically found under Profile > Settings > Connection and security [2][3][4]. This functionality allows users to specify alternative DNS providers if needed. Regarding Netflix and other streaming services, NordVPN manages traffic routing to help bypass geo-restrictions by masking a user's original IP address with that of a chosen VPN server or a Meshnet host device [1][5]. When traffic is routed through a Meshnet peer, the client device adopts the public IP address of the host device [1]. Because streaming platforms like Netflix often detect and block known VPN IP addresses, routing traffic through a residential IP via Meshnet is sometimes used as a method to appear as a standard home network connection, potentially improving access to region-locked content [1]. In summary: - DNS Routing: Handled by NordVPN by default to prevent leaks [1]. - Customization: Users can override default DNS settings in the application menu [2][3]. - Streaming Impact: Standard VPN connections or Meshnet traffic routing mask your IP to facilitate access to streaming content [1][5]. Meshnet specifically allows you to route traffic through your own residential devices, which may be less likely to be flagged by streaming services than data center VPN IPs [1]. Citations:
Scope the DNS requirement correctly. NordVPN Meshnet routes DNS through NordVPN DNS by default; custom DNS is an optional client setting. Change this note to say: if you want streaming through the Raspberry Pi to use the Pi’s DNS, configure custom DNS in the NordVPN app with the Pi’s Meshnet IP. Otherwise, remove 🤖 Prompt for AI Agents |
||
|
|
||
| - Maybe add an External Device? | ||
| ould you like me to go ahead and apply these updates (fixing both copy_scripts.sh and rewriting README.md)? | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| #! /usr/bin/bash | ||
|
|
||
| # Copies scripts to the ~/.local/bin/ folder so they can be executed | ||
| # everywhere. | ||
| # Run source ~/.bashrc after running this script to make the new scripts | ||
| # available. | ||
| # If the ~/.local/bin/ directory isn't there you need to create it. | ||
| # Then you need to add it to the PATH by inserting the line | ||
| # export PATH="$PATH" + ",~/home/terje/.local/bin to the end of the | ||
| # ~/.bashrc file. | ||
| # | ||
| # All copied files will have nord_ prepended and the .sh removed in the new | ||
| # filename. | ||
|
|
||
| cp config.sh ~/.local/bin/nord_config | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
rg -n -C 3 'PEERS_FILE|peers\.json' bash/nordRepository: terjeinnerdal/scripts Length of output: 8594 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- copy_scripts.sh ---'
cat -n bash/nord/copy_scripts.sh
printf '%s\n' '--- peers.json present ---'
ls -l bash/nord/peers.json 2>/dev/null || true
printf '%s\n' '--- deterministic dirname resolution for installed paths ---'
python3 - <<'PY'
from pathlib import Path
for installed in [
Path.home() / ".local" / "bin" / "nord_config",
Path("/usr/local/bin/nord_config"),
Path(".local/bin/nord_config"),
]:
print(f"{installed!s} -> {installed.parent!s}/peers.json -> {(installed.parent / 'peers.json').name}")
PYRepository: terjeinnerdal/scripts Length of output: 1609 Copy
🤖 Prompt for AI Agents |
||
| cp connect.sh ~/.local/bin/nord_connect | ||
| cp list_peers.sh ~/.local/bin/nord_list_peers | ||
| cp login.sh ~/.local/bin/nord_login | ||
| cp logout.sh ~/.local/bin/nord_logout | ||
| # cp nord_watchdog.sh ~/.local/bin/nord_watchdog | ||
| cp reset.sh ~/.local/bin/nord_reset | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win Keep
🤖 Prompt for AI Agents |
||
| cp set_nickname.sh ~/.local/bin/nord_set_nickname | ||
| cp exit_node.sh ~/.local/bin/nord_exit_node | ||
|
Comment on lines
+15
to
+23
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win Make the global-command installation contract self-contained. The installer and README currently depend on an existing target directory, a valid PATH entry, and manual shell configuration.
📍 Affects 2 files
🤖 Prompt for AI Agents |
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Remove draft text and repair the setup examples.
The README contains unrelated draft text, numbering artifacts, and a merged heading. Format
nord_exit_node mesh-raspberryas a code block, restore theConnect to Peerheading, changeRaspberryPitoRaspberry Pi, and remove the leftover update prompt.Also applies to: 26-26, 31-32, 38-38, 44-44
🤖 Prompt for AI Agents
Source: Linters/SAST tools