class VagrantPlugins::Share::Cap::TinyCore
Constants
- DEFAULT_SHARE_PASSWORD
- REDSOCKS_CONF
-
This is the configuration for redsocks that we use to proxy
Public Class Methods
Source
# File lib/vagrant-share/cap/tinycore.rb, line 29 def self.connect_proxy(machine, vm_ip, proxy_port, **opts) if opts[:type].to_s == "standalone" redsocks_conf = REDSOCKS_CONF. gsub("%PROXY_IP%", "127.0.0.1"). gsub("%PROXY_PORT%", "31339") else ip_parts = vm_ip.split(".") ip_parts[3] = "1" host_ip = ip_parts.join(".") redsocks_conf = REDSOCKS_CONF. gsub("%PROXY_IP%", host_ip). gsub("%PROXY_PORT%", proxy_port.to_s) end shared_password = opts[:shared_password] || DEFAULT_SHARE_PASSWORD machine.communicate.tap do |comm| comm.sudo("sysctl -w net.ipv4.ip_forward=1") comm.sudo("/usr/local/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -j REDIRECT --to-ports 31338") comm.sudo("/usr/local/sbin/iptables -A INPUT -i eth1 -j ACCEPT") comm.sudo("rm -f ~/redsocks.conf") redsocks_conf.split("\n").each do |line| comm.sudo("echo '#{line}' >> ~/redsocks.conf") end if opts[:type].to_s == "standalone" comm.sudo("start-stop-daemon -b --start --exec /usr/local/bin/ss-client " \ "-- -socks :31339 -password #{shared_password} -c #{vm_ip}:#{proxy_port}") end comm.sudo( "start-stop-daemon -b --start --exec /usr/local/bin/redsocks " \ "-- -c ~/redsocks.conf") end end