This page provides solutions for common issues encountered when setting up and running OpenVPN in bridge mode.
Symptoms: VPN connects but you can’t access local resources or internet
Cause: The remote network uses the same IP range as your home network
Solution:
# On client, check local IP before connecting
ipconfig # Windows
ifconfig # macOS/Linux
10.99.99.0/24# Only route home network traffic through VPN
route 10.99.99.0 255.255.255.0
route-nopull
Check service status:
sudo systemctl status openvpn-server@server
sudo journalctl -u openvpn-server@server
Common causes and solutions:
# Test configuration
sudo openvpn --config /etc/openvpn/server/server.conf --verb 4
sudo netstat -tulpn | grep 1194
sudo lsof -i :1194
sudo chmod +x /etc/openvpn/bridge_start.sh
sudo chmod +x /etc/openvpn/bridge_stop.sh
sudo chown root:root /etc/openvpn/bridge_*.sh
sudo apt install bridge-utils
# UFW
sudo ufw allow 1194/udp
# iptables
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
Verify port forwarding on your router
Check bridge status:
brctl show
ip addr show br0
Common problems:
# Manually run bridge script to see errors
sudo /etc/openvpn/bridge_start.sh
# Check if ethernet interface exists
ip link show
# Check for correct interface name (might be enp0s3, ens33, etc.)
sudo chmod +x /etc/openvpn/bridge_start.sh
sudo chown root:root /etc/openvpn/bridge_start.sh
sudo nano /etc/openvpn/bridge_start.sh
# Verify eth, eth_ip, eth_gateway match your network
ip addr show br0
ip route show
# Bridge should use the same MAC as physical interface
ip link show eth0
ip link show br0
ping 10.99.99.1 # Your router
ping google.com
Check client logs:
journalctl | grep openvpnCommon client problems:
# Test DNS resolution on client
nslookup google.com
ping your-server-ipsudo nano /etc/openvpn/server/server.conf
# Verify server-bridge line is correct
# Ensure bridge is properly configured
brctl show
ip addr show br0
# Test internet connectivity
ping google.com
# Test local network
ping 10.99.99.1 # Your router
# Check listening ports
sudo netstat -tulpn | grep openvpn
# Test OpenVPN management interface (if enabled)
telnet localhost 7505
# Test VPN server
ping 10.99.99.134 # Your Pi's IP
# Test other local devices
ping 10.99.99.1 # Your router
# Test internet through VPN
ping google.com
# Check assigned IP
ipconfig /all # Windows
ifconfig # macOS/Linux
# From client
traceroute google.com
traceroute 10.99.99.1
nslookup google.com
dig google.com
top
htop
# Install iperf3
sudo apt install iperf3
# On server
iperf3 -s
# On client
iperf3 -c <server-ip>
# Increase buffer sizes
sndbuf 524288
rcvbuf 524288
# Use fast cipher
cipher AES-128-GCM
# Reduce compression overhead
comp-lzo no
# Optimize fragment size
fragment 1300
mssfix 1300
sudo ethtool eth0
sudo nano /etc/openvpn/server/server.conf
# Change: verb 3
# To: verb 4 or verb 5
journalctl -u openvpn-server@server/var/log/syslog/var/log/openvpn/status.log (if enabled)| Error Message | Cause | Solution |
|---|---|---|
| “TLS handshake failed” | Certificate/key issues | Check certificates, regenerate if needed |
| “Cannot allocate TUN/TAP” | TAP driver or permissions | Install TAP driver, check permissions |
| “RESOLVE: Cannot resolve host” | DNS or network issues | Check DNS settings, network connectivity |
| “Connection reset by peer” | Firewall or port forwarding | Check firewall rules, router config |
| “AUTH_FAILED” | Authentication problems | Verify username/password, certificates |
| “TLS Error: cannot locate HMAC” | Key configuration mismatch | Check ta.key configuration |
| “certificate verify failed” | Expired or invalid certificates | Check certificate expiry, regenerate if needed |
| “error=certificate has expired” | Certificate expired | Regenerate server or client certificate |
| “SSL_read error” | Certificate trust issues | Verify CA and certificate chain |
For certificate-related issues, see the detailed Certificate Management section in the Configuration Guide.
# Follow OpenVPN logs in real-time
sudo journalctl -u openvpn-server@server -f
# Show only errors
sudo journalctl -u openvpn-server@server -p err
# Show logs from last boot
sudo journalctl -u openvpn-server@server -b
# Show logs from specific time
sudo journalctl -u openvpn-server@server --since "2023-01-01 10:00:00"
sudo apt install tcpdump
# Capture on UDP port 1194
sudo tcpdump -i any -nn port 1194
# Capture on bridge interface
sudo tcpdump -i br0 -nn
# Capture on TAP interface
sudo tcpdump -i tap0 -nn
# Check memory usage
free -h
# Check disk space
df -h
# Check network statistics
cat /proc/net/dev
# Check OpenVPN process
ps aux | grep openvpn
If you need to start over:
sudo systemctl stop openvpn-server@server
sudo /etc/openvpn/bridge_stop.sh
sudo cp /etc/openvpn/server/server.conf.backup /etc/openvpn/server/server.conf
sudo systemctl restart networking
sudo systemctl restart dhcpcd
If you’re still experiencing issues:
openvpn --versionlsb_release -aip addr showjournalctl -u openvpn-server@serverRemember to sanitize any logs or configurations before sharing them publicly (remove IP addresses, certificates, keys, etc.).