借用windows端口转发为板卡赋能apt-get

        最近调试一款相机,内置的ubuntu系统,通过网线直连到笔记本电脑,支持ssh登录相机,但为方便调试准备在相机里安装xrdp环境,使用远程桌面连接过去测试图形程序。直接交叉编译xrdp较为繁琐,考虑到windows和linux都支持跨网段的报文转发,可以将相机apt-get上来的报文转发至无线网卡,由无线网卡发送至外网服务器。

网络拓扑介绍:

相机ip:192.168.0.244,网线直连笔记本电脑

笔记本电脑ip:

192.168.0.10(有线,直连的相机)

192.168.43.142(无线网卡)

方法一:使用windows内置的netsh端口转发功能,将相机的目标报文由windows作为代理服务转发至外网

首先确保windows满足以下条件:

1. 防火墙例外端口或关闭

2. Win7以上的IP Helper服务启动

3. Net.tcp Port sharing service服务启动

        使用管理员权限打开cmd,输入以下命令:

netsh interface portproxy add v4tov4 listenport=80 listenaddress=192.168.0.10 connectport=80 connectaddress=202.141.160.110

其他netsh interface相关命令:

        查看端口转发列表:

netsh interface portproxy show all
or
netsh interface portproxy show v4tov4

        删除或重置端口转发:

netsh interface portproxy delete v4tov4 listenport=80 listenaddress=192.168.0.10
or
netsh interface portproxy reset

        防火墙相关:

netsh Advfirewall set allprofiles state off
netsh Advfirewall show allprofiles
netsh advfirewall set allprofiles state on

        netsh interface portproxy基本格式如下:

netsh interface portproxy add v4tov4 listenaddress=[监听地址] listenport=[监听端口] connectaddress=[目标地址] connectport=[目标端口]
netsh interface portproxy delete v4tov4 listenaddress=[监听地址] listenport=[监听端口]

help:
netsh interface portproxy add v4tov4 help

        apt-get使用的是http协议,用的80端口,因此我们选择监听相机连接过来的网卡ip,并选择监听80端口,我选择的是ustc的apt源,ping下就可以得到目标ip地址202.141.160.110,同样目标端口选择80端口。另外还需要修改相机的/etc/hosts配置,添加如下一行:

​​​​​​​192.168.0.10 mirrors.ustc.edu.cn

        该配置可以将apt源的域名 "mirrors.ustc.edu.cn" 映射到直连笔记本电脑侧的网卡ip地址(监听端),这样相机会将apt报文发往笔记本电脑的192.168.0.10网卡,之后电脑会将该报文通过无线网卡转发至真正的ustc镜像网站202.141.160.110的80端口。自此相机到ustc镜像源之间就正式牵手成功了 ^_^

拓展:相机DNS服务报文转发

/etc/resolvconf/resolv.conf.d/head

nameserver 192.168.0.10
# use-vc强制DNS使用 tcp方式,而非默认的udp
options use-vc

        dns服务的默认端口是53,一般使用udp来查询,而netsh目前仅支持tcp,use-vc选项可以强制dns使用tcp模式查询。

方法二:配置无线网卡为共享模式,将连接到相机端的有线网卡配置成网关模式

        方法一的局限是每一种服务都需要由netsh建立一条通道直达目标服务器,此后80端口的报文就只能发往ustc镜像服务器,整个过程应该是建立于tcp/ip协议之上。另一种一劳永逸的方法是将windows连到相机端的有线网卡配置成网关功能,在协议栈的更底层完成数据转发,方法是将接到外网的无线网卡配置成共享模式,如图所示:

        “家庭网络连接”选择以太网(直连相机的网卡),将接有相机的本地连接加入到共享局域网中,Windows "Internet连接共享" 默认使用192.168.137.1做为网关,因此系统会自动将本地连接的ip配置为192.168.137.1。

        相机端的配置,需要将方法一中相机的/etc/hosts等配置还原,并修改相机ip地址为192.168.137.0/24网段,添加相机默认网关为192.168.137.1,命令如下:

ifconfig eth0 192.168.137.244 netmask 255.255.255.0
route add default gw 192.168.137.1

        此时相机的所有网络报文都会丢给网关192.168.137.1,而后windows系统将报文交由无线网卡透传到外网服务器,此后相机就可以正常访问外网资源而不会受到限制了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值