
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
@libp2p/upnp-nat
Advanced tools
UPnP NAT hole punching
The service exported by this module attempts to configure NAT hole punching via UPnP.
This will make your node publicly accessible from the internet.
For this to work there are some prerequisites:
import { createLibp2p } from 'libp2p'
import { tcp } from '@libp2p/tcp'
import { uPnPNAT } from '@libp2p/upnp-nat'
const node = await createLibp2p({
addresses: {
listen: [
'/ip4/0.0.0.0/tcp/0'
]
},
transports: [
tcp()
],
services: {
upnpNAT: uPnPNAT()
}
})
Some ISP-provided routers are under powered and may require rebooting before they will respond to SSDP M-SEARCH messages.
You can manually specify your external address and/or gateways, though note that those gateways will still need to have UPnP enabled in order for libp2p to configure mapping of external ports (for IPv4) and/or opening pinholes in the firewall (for IPv6).
import { createLibp2p } from 'libp2p'
import { tcp } from '@libp2p/tcp'
import { uPnPNAT } from '@libp2p/upnp-nat'
const node = await createLibp2p({
addresses: {
listen: [
'/ip4/0.0.0.0/tcp/0'
]
},
transports: [
tcp()
],
services: {
upnpNAT: uPnPNAT({
// manually specify external address - this will normally be an IPv4
// address that the router is performing NAT with
externalAddress: '92.137.164.96',
gateways: [
// an IPv4 gateway
'http://192.168.1.1:8080/path/to/descriptor.xml',
// an IPv6 gateway
'http://[xx:xx:xx:xx]:8080/path/to/descriptor.xml'
]
})
}
})
$ npm i @libp2p/upnp-nat
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
FAQs
UPnP NAT hole punching
The npm package @libp2p/upnp-nat receives a total of 8,088 weekly downloads. As such, @libp2p/upnp-nat popularity was classified as popular.
We found that @libp2p/upnp-nat demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.