linux上创建loopback接口,在python中的特定接口的linux loopback接口

我试图发送一些数据到本地地址,然后使用特定的接口ppp0'转发'到外部地址。我认为我的问题与分组路由/套接字绑定问题有关,但我太多了解它的新手。在python中的特定接口的linux loopback接口

我的网络设置:

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0

0.0.0.0 192.168.1.1 0.0.0.0 UG 303 0 0 wlan0

10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0

169.254.0.0 0.0.0.0 255.255.0.0 U 304 0 0 wwan0

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0

192.168.1.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0

与回送:

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:65536 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

在Python端,我绑定插座

HOST = ''

PORT_vid = 0

try:

s_vid = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s_vid.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s_vid.setsockopt(socket.SOL_SOCKET, 25, "ppp0")#this works to bind it to ppp0

print("Socket created.")

except socket.error, msg:

print("Failed. Error: " + str(msg))

sys.exit()

try:

s_vid.bind((HOST,PORT_vid))

print("Socket binding complete.")

except socket.error, msg:

print("Bind failed. Error: " + str(msg))

s_vid.close()

sys.exit()

,如果我尝试简单的正常工作ping一个外部地址。现在,我把我的数据使用netcat

#p_nc is taking some data from a local process and sending it to the local point

p_nc = subprocess.Popen(["nc", "-u", "127.0.0.1", str(s_vid.getsockname()[1])],stdin=another_process.stdout)

然后我听那个本地端口转发给本地点(有很好的理由,我不只是netcat把它关闭)

while 1:

data, addr = s_vid.recvfrom(1024)

print('local reception')

#do stuff here with 'data' - never reached

s_vid.sendto(data_amended,(external_ip,external_port))

数据必须通过ppp0转到外部地址,并且使用“到局部到外部的进程netcat”设置(如上所述)将是首选。 s_vid套接字不需要监听任何外部流量,它仅仅是发送外部和本地监听。

我猜我的套接字绑定到ppp0,所以无法读取环回数据,但我不知道如何解决它。无论是在Python端还是在IP路由端的解决方案都可以工作,但我是新的路由和接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值