草庐IT

通过wireguard安全访问家里的网络(2)-Windows端配置

丁心泽 2023-05-19 原文

说明


1.学习本章节前请先学习:https://blog.csdn.net/corosync/article/details/129056804

2.软件下载地址:https://www.123pan.com/s/M6RKVv-JNNad  提取码:Wz9Z 或者去官网下载

3.家庭宽带要有外网IP地址

4.主路由使用openwrt路由器且支持wireguard

配置


1.下载WireGuard

2.双击打开它

 3.点击新建隧道-新建空隧道

4.打开创建新隧道界面,私钥要保密,谁也不告诉;公钥要告诉openwrt,名称随便命名,我们这里命名为wg0

 

5.回到openwrt 接口-wg0接口 点击修改 进入修改页面  点击添加为电脑添加一个对端

 

 

6.粘贴电脑端公钥给openwrt

 

7.设置客户端(电脑端)IP地址,也就是电脑端WireGuard的ip地址必须设置为192.168.40.11,如果设置的不一样,将无法连接服务端。勾选 路由允许的IP ,持续keep-alive保持默认0即可。

 

8.点击保存

 

9.回到windows WireGuard 界面,我们添加一些必须的配置

 

10.下面给出了一个配置模板

[Interface]
PrivateKey = 这个不要动,保存生成默认值
Address = openwrt的peers中设置的允许的IP地址
DNS = 接口wg0中 一般配置-基础设置中你设置的IP地址

[Peer]
PublicKey = openwrt根据一般配置-基础设置中的私钥生成的公钥
AllowedIPs = 允许走WireGuardVPN的网段
Endpoint = openwrt的wan口的(外网的)IP地址:端口号
PersistentKeepalive = openwrt端peers中配置的keep-alive的值,默认为0,不建议改动

11.我们根据上面模板的完善WireGuard的配置文件

    a.PrivateKey 这个值默认已经生成好了,不要动

    b.Address 这个值我们应该设置为:192.168.40.11/32

    c.DNS 这个值应该设置为:192.168.40.1

    d.PublicKey 这个值我们先不设置

    e.AllowedIPs 这个值根据你的需要设置,格式为ip地址/子网掩码,如果你想所有的流量都走代理那就设置为0.0.0.0/0   如果你想某个网段走代理比如192.168.1.X,那就设置为192.168.1.0/24,多个以英文逗号分隔这里我们设置为: 192.168.10.0/24, 192.168.100.0/24

    f.Endpoint 就是服务器的地址和端口,这里就是openwrt外网wan口的地址和端口。例如:99.33.22.333:2001

    g.PersistentKeepalive这个值官方不建议设置,我们设置为0即可。0即是官网默认的值。

 

12.根据openwrt的私钥生成openwrt的公钥,生成的公钥一定要留好,这个公钥以后配置windows客户端  ios客户端  安卓客户端 等都需要复制给客户端使用!!!!!!

命令: 

echo "openwrt的私钥" | wg pubkey

13.将12中生成的公钥复制到11中的配置文件的PublicKey值中

14.最终示例:

[Interface]
PrivateKey = eLPmxxF3O马赛克马赛马赛克马赛克wdopdWzhk+0A=
Address = 192.168.40.11/32
DNS = 192.168.40.1

[Peer]
PublicKey = LumSbSogY3n马赛克马赛马赛克k8Ry93y7WA=
AllowedIPs = 192.168.10.0/24, 192.168.100.0/24
Endpoint = 马赛克:2001
PersistentKeepalive = 0

示意图总结

 

15. 将配置文件补齐到windows WireGuard客户端中,点击保存

 

16.点击保存并应用

 

17.回到openwrt的接口列表界面,找到wg0接口,先点击停用客户端,停用成功后再点击连接,相当于重启接口wg0,注意以后每增加一个peer必须先停用客户端再点击连接。否则新配置的peer不能连接。

 

18.配置防火墙,放行2001端口    打开网络-防火墙-通信规则

 

添加放行规则

 

先点击添加按钮,完成后点击保存并应用

 

19.打开windows端的WireGuard  点击连接按钮

 

20.测试

 

21.连接成功后,尝试访问内网地址

 

 

至此,windows端配置就完成了

 

有关通过wireguard安全访问家里的网络(2)-Windows端配置的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  5. ruby - 通过 erb 模板输出 ruby​​ 数组 - 2

    我正在使用puppet为ruby​​程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby​​不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这

  6. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  7. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  8. ruby - 通过 ruby​​ 进程共享变量 - 2

    我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是

  9. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  10. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

随机推荐