Add tailscale module
This commit is contained in:
parent
6142cc4b39
commit
0fc12a626a
4 changed files with 80 additions and 2 deletions
67
README.md
67
README.md
|
|
@ -42,7 +42,8 @@ home-manager switch --flake github:Logan-Lin/nix-config#yanlin
|
||||||
│ ├── firefox.nix # Firefox browser with extensions and bookmarks
|
│ ├── firefox.nix # Firefox browser with extensions and bookmarks
|
||||||
│ ├── btop.nix # Modern system monitor
|
│ ├── btop.nix # Modern system monitor
|
||||||
│ ├── ghostty.nix # GPU-accelerated terminal emulator
|
│ ├── ghostty.nix # GPU-accelerated terminal emulator
|
||||||
│ └── syncthing.nix # File synchronization service
|
│ ├── syncthing.nix # File synchronization service
|
||||||
|
│ └── tailscale.nix # Secure networking and VPN service
|
||||||
├── system/ # System-level nix-darwin configurations
|
├── system/ # System-level nix-darwin configurations
|
||||||
│ ├── default.nix # System module imports
|
│ ├── default.nix # System module imports
|
||||||
│ └── macos-defaults.nix # macOS system preferences and customizations
|
│ └── macos-defaults.nix # macOS system preferences and customizations
|
||||||
|
|
@ -646,6 +647,70 @@ hms
|
||||||
- **Tmux**: Copy mode automatically uses system clipboard
|
- **Tmux**: Copy mode automatically uses system clipboard
|
||||||
- **Terminal**: Standard Cmd+C/V works everywhere
|
- **Terminal**: Standard Cmd+C/V works everywhere
|
||||||
|
|
||||||
|
## 🔒 Secure Networking: Tailscale
|
||||||
|
|
||||||
|
**Configuration**: `modules/tailscale.nix`
|
||||||
|
**Purpose**: Secure mesh VPN for private networking across devices
|
||||||
|
|
||||||
|
### Key Features:
|
||||||
|
- **Automatic Startup**: Runs as a system service at boot
|
||||||
|
- **MagicDNS**: Access devices by name instead of IP addresses
|
||||||
|
- **Secure Connectivity**: Zero-configuration encrypted connections
|
||||||
|
- **Exit Nodes**: Route traffic through specific devices
|
||||||
|
|
||||||
|
### Command Line Usage:
|
||||||
|
|
||||||
|
#### Basic Operations:
|
||||||
|
```bash
|
||||||
|
# Check connection status and see all devices
|
||||||
|
tailscale status
|
||||||
|
|
||||||
|
# Connect to your Tailscale network (first-time setup)
|
||||||
|
tailscale up
|
||||||
|
|
||||||
|
# Disconnect temporarily
|
||||||
|
tailscale down
|
||||||
|
|
||||||
|
# View current Tailscale IP address
|
||||||
|
tailscale ip -4
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Exit Node Management:
|
||||||
|
```bash
|
||||||
|
# List available exit nodes
|
||||||
|
tailscale exit-node list
|
||||||
|
|
||||||
|
# Use a specific exit node
|
||||||
|
tailscale set --exit-node=<hostname>
|
||||||
|
# or
|
||||||
|
tailscale up --exit-node=<hostname>
|
||||||
|
|
||||||
|
# Stop using exit node
|
||||||
|
tailscale set --exit-node=
|
||||||
|
# or
|
||||||
|
tailscale up --exit-node=
|
||||||
|
|
||||||
|
# Allow LAN access while using exit node
|
||||||
|
tailscale set --exit-node=<hostname> --exit-node-allow-lan-access
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Advanced Usage:
|
||||||
|
```bash
|
||||||
|
# Get suggested exit node
|
||||||
|
tailscale exit-node suggest
|
||||||
|
|
||||||
|
# Check detailed network diagnostics
|
||||||
|
tailscale netcheck
|
||||||
|
|
||||||
|
# Show network configuration
|
||||||
|
tailscale debug netmap
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration Details:
|
||||||
|
- **Auto-start**: Enabled via nix-darwin service management
|
||||||
|
- **DNS Override**: Uses Tailscale's MagicDNS (100.100.100.100) for name resolution
|
||||||
|
- **System Integration**: Runs as a daemon accessible to all users
|
||||||
|
|
||||||
## 💻 Machine Configurations
|
## 💻 Machine Configurations
|
||||||
|
|
||||||
- **`iMac`**: iMac configuration
|
- **`iMac`**: iMac configuration
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@
|
||||||
configuration = { pkgs, ... }: {
|
configuration = { pkgs, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
./system
|
./system
|
||||||
|
./modules/tailscale.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
|
|
|
||||||
11
modules/tailscale.nix
Normal file
11
modules/tailscale.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Enable Tailscale service
|
||||||
|
services.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
# Override local DNS to use Tailscale's MagicDNS
|
||||||
|
# This ensures Tailscale DNS resolution works properly on macOS
|
||||||
|
overrideLocalDns = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
@ -4,4 +4,5 @@
|
||||||
imports = [
|
imports = [
|
||||||
./macos-defaults.nix
|
./macos-defaults.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue