Files
my-docs/Vagrant/Network.md
2025-11-27 00:04:38 +03:30

2.5 KiB

Vagrant Networking Configuration Guide (DevOps Oriented)

This document provides a structured reference for configuring Vagrant virtual machine networking, focusing on private, public, and forwarded port configurations commonly used in DevOps workflows.


1. Types of Networks

Vagrant supports multiple networking modes. This guide focuses on two primary types:

1.1 Private Network

A private network allows the VM to communicate only with the host or other VMs on the same private network. Often used for internal service communication or NAT-style layouts.

NAT-based private network:

config.vm.network "private_network", type: "dhcp"

Static IP private network:

config.vm.network "private_network", ip: "192.168.50.4"

Static IP with manual configuration (no auto-config):

config.vm.network "private_network", ip: "192.168.50.4", auto_config: false

IPv6 private network:

config.vm.network "private_network", ip: "fde4:8dba:82e1::c4"

1.2 Public Network

A public network bridges the VM directly to the physical network, making it appear as a full-fledged device on the LAN, similar to the host.

Basic public network:

config.vm.network "public_network"

Use DHCP-assigned default route:

config.vm.network "public_network", use_dhcp_assigned_default_route: true

Static IP assignment:

config.vm.network "public_network", ip: "192.168.0.17"

Specify network bridge interface:

config.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)"

Multiple bridge options:

config.vm.network "public_network", bridge: [
  "en1: Wi-Fi (AirPort)",
  "en6: Broadcom NetXtreme Gigabit Ethernet Controller",
]

2. Port Forwarding

Port forwarding maps ports from the host machine to the guest VM, allowing external access to services running inside the VM.

2.1 Basic Port Forwarding

config.vm.network "forwarded_port", guest: 80, host: 8080

2.2 Port Forwarding with Protocol Selection

config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: "tcp"
config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: "udp"

2.3 Auto Correcting Port Conflicts

config.vm.network "forwarded_port", guest: 80, host: 8080, auto_correct: true

2.4 Define a Usable Host Port Range

Useful when Vagrant must auto-correct ports within a controlled range.

config.vm.usable_port_range = 8000..8999