Use Steam's In-Home Streaming across VPN (OpenVPN)?
Solution 1
So it turns out that such a simple idea with OpenVPN is actually a LOT more complex and involved. You can do Steam Streaming if you use OpenVPN in bridged mode (which I take requires already having a local lan setup that you can bridge into).
What I ended up doing instead was use Hamachi and mix together the instructions found at http://steamcommunity.com/groups/homestream/discussions/0/540738051890279158/ and https://help.ubuntu.com/community/Hamachi
Streaming a linux client from a windows machine works perfectly.
Solution 2
I got it working with OpenVPN (using TAP) after a lot of work. No luck with TUN, I believe it cannot work with TUN since there is no UDP broadcast possible with it (which apparently Steam In-home Streaming uses to detect peers).
I run the OpenVPN server on my router, a Archer C7 V2 running OpenWRT (Barrier Breaker).
Below is the server config file I use. Modification is necessary, where should be clear:
client-to-client
persist-key
persist-tun
tls-server
ca /etc/openvpn/ca.crt
cert /etc/openvpn/erb-router-c7.crt
dev tap_mypvn
dh /etc/openvpn/dh2048.pem
keepalive 10 120
key /etc/openvpn/erb-router-c7.key
log /tmp/openvpn.log
mode server
port 1194
proto udp
route-gateway dhcp
server 10.8.0.0 255.255.255.0
status /var/log/openvpn_status.log
topology subnet
verb 3
push topology subnet
push route-gateway dhcp
push persist-key
push persist-tun
Here is my client config (The host machine running Windows, a similar config is used on the client machine running Ubuntu):
client
float
dev tap
proto udp
remote YOUR_HOSTNAME_OR_IP_HERE 1194
log "C:/Program Files/OpenVPN/config/log.txt"
verb 3
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
ca "C:/Program Files/OpenVPN/config/ca.crt"
cert "C:/Program Files/OpenVPN/config/erb-main-7.crt"
key "C:/Program Files/OpenVPN/config/erb-main-7.key"
I've done so much with the OpenWRT config that I'm not sure if this is all that is required for someone to replicate my success. But the short version it: Use TAP and not TUN, make sure your VPN clients can talk to each other by specifying the client-to-client
parameter in the server config. In OpenWRT I've also set up the network interface and the firewall as specified in the OpenWRT wiki for OpenVPN.
If you have any questions, I'll do my best to answer them.
Edit, on request:
/etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd0f:252f:ed29::/48'
config interface 'lan'
option force_link '1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
option _orig_ifname 'eth1 wlan0 wlan1'
option _orig_bridge 'true'
option ifname 'eth1 tap_myvpn'
config interface 'wan'
option ifname 'eth0'
option proto 'dhcp'
config interface 'wan6'
option ifname '@wan'
option proto 'dhcpv6'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '0 2 3 4 5'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '1 6'
config interface 'vpn0'
option ifname 'tun0'
option proto 'none'
option auto '1'
Selected part from /etc/config/firewall
, may not provide entire context but I don't want my entire firewall file to be known. Please inform me of eventual redundancy and mistakes:
config rule
option name 'Allow-OpenVPN-Inbound'
option target 'ACCEPT'
option src '*'
option proto 'udp'
option dest_port '1194'
config zone
option name 'vpn'
option masq '1'
option input 'ACCEPT'
option forward 'ACCEPT'
option output 'ACCEPT'
option network 'vpn0'
config forwarding
option dest 'lan'
option src 'vpn'
config forwarding
option dest 'wan'
option src 'vpn'
config forwarding
option dest 'vpn'
option src 'lan'
Related videos on Youtube
Denis2310
Updated on September 18, 2022Comments
-
Denis2310 over 1 year
I want to show only posts that are related to multiple tags. Posts and tags are connected with many to many relationship.
In filter menu user can check multiple tags and then only posts that are related to all of those tags needs to be shown.
For example: If user checks #fruit and #vegetable tags then posts with both of those tags will appear.
whereIn('tag_id', $array_of_tag_ids) method is working but its showing all posts that have at least one tag of those specified.
Thanks
-
erb about 8 yearsI have a strong urge to edit this question down to the bare minimums as to make it more general, would that be acceptable to you @Asmo?
-
-
Justin W about 8 yearsAny chance you could upload your /etc/config/network and /etc/config/firewall ? I'm trying to duplicate your configuration right now, though I'm using Chaos Calmer. Shouldn't be hard to sanitize.
-
erb about 8 years@JustinW There you go, appended them to the answer. Feel free submit a cleanup, but I really need to sleep so lack the time. I upgraded to Chaos Calmer myself recently, not sure if the VPN still works. Let me know how it goes!
-
erb about 8 years@JustinW Did you get it to work?
-
erb about 8 years@JustinW I'm likely to pick this config up again in the future, I'll ping you if I do and get it working.
-
Enigma over 7 years@erb Highly interested in getting this kind of setup working but looks way too daunting. Also I'd be running the server on a dedicated Ubuntu 16.04 server. Maybe you can post a separate answer with those configs?