From docker network to localhost port with snat iptable The 2019 Stack Overflow Developer Survey Results Are Iniptables port forwardingIptables stringHow to configure port-forwarding to enable internal service accessed by another machine?iptables - Redirect except list MAC AddressConfig differents external proxy to every VM with iptablesiptables port forwarding to server with different portRewrite source of incoming packets to 127.0.0.1 with iptablesCan't access docker bind port from public IPRedirect works from external network, but not internal(dnat|redirect) with masquerade doesn't work
Why doesn't shell automatically fix "useless use of cat"?
Why are there uneven bright areas in this photo of black hole?
Keeping a retro style to sci-fi spaceships?
Is it safe to harvest rainwater that fell on solar panels?
What is preventing me from simply constructing a hash that's lower than the current target?
How can I have a shield and a way of attacking with a ranged weapon at the same time?
Did Scotland spend $250,000 for the slogan "Welcome to Scotland"?
Can a flute soloist sit?
What can I do if neighbor is blocking my solar panels intentionally
Will it cause any balance problems to have PCs level up and gain the benefits of a long rest mid-fight?
"as much details as you can remember"
Is it ok to offer lower paid work as a trial period before negotiating for a full-time job?
How to quickly solve partial fractions equation?
Can you cast a spell on someone in the Ethereal Plane, if you are on the Material Plane and have the True Seeing spell active?
Is bread bad for ducks?
A female thief is not sold to make restitution -- so what happens instead?
How to type this arrow in math mode?
How to charge AirPods to keep battery healthy?
How do you keep chess fun when your opponent constantly beats you?
Dropping list elements from nested list after evaluation
Accepted by European university, rejected by all American ones I applied to? Possible reasons?
Geography at the pixel level
Short story: man watches girlfriend's spaceship entering a 'black hole' (?) forever
Short story: child made less intelligent and less attractive
From docker network to localhost port with snat iptable
The 2019 Stack Overflow Developer Survey Results Are Iniptables port forwardingIptables stringHow to configure port-forwarding to enable internal service accessed by another machine?iptables - Redirect except list MAC AddressConfig differents external proxy to every VM with iptablesiptables port forwarding to server with different portRewrite source of incoming packets to 127.0.0.1 with iptablesCan't access docker bind port from public IPRedirect works from external network, but not internal(dnat|redirect) with masquerade doesn't work
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I created a docker network with follow code:
docker network create --subnet=172.18.0.0/16 dockernet
After run a my docker container with:
docker run -d --net=dockernet --ip 172.18.1.1 --name mycontainer mycontainer
Now my container run with 172.18.1.1 ip inside dockernet network, and with ifconfig I see that my host ip is 172.18.0.1.
After i run these commands:
sysctl -w net.ipv4.conf.dockernet.route_localnet=1
iptables -t nat -A PREROUTING -i dockernet -d 172.18.0.1 -p tcp --
dport 3306 -j DNAT --to-destination 127.0.0.1:3306
iptables -t nat -A POSTROUTING -s 172.18.0.0/16 -o lo -p tcp --dport 3306 -j SNAT --to-source 127.0.0.1
Now my container is avaiable to connect to localhost port 3306(mysql), but mysql see that source ip is "172.18.1.1" and not "127.0.0.1"... This means that "-j SNAT --to-source 127.0.0.1" doesn't work...
How can I do to replace source ip "172.18.1.1" with 127.0.0.1 into loopback interface?
P.S. I DON'T WANT USE "docker run --net=host..." AND I DON'T WANT ADD THE FOLLOW USER INTO MYSQL:
CREATE USER 'dockeruser'@'172.18.1.1' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON `mydb`.* TO 'dockeruser'@'172.18.1.1'
FLUSH PRIVILEGES
mysql iptables docker
New contributor
add a comment |
I created a docker network with follow code:
docker network create --subnet=172.18.0.0/16 dockernet
After run a my docker container with:
docker run -d --net=dockernet --ip 172.18.1.1 --name mycontainer mycontainer
Now my container run with 172.18.1.1 ip inside dockernet network, and with ifconfig I see that my host ip is 172.18.0.1.
After i run these commands:
sysctl -w net.ipv4.conf.dockernet.route_localnet=1
iptables -t nat -A PREROUTING -i dockernet -d 172.18.0.1 -p tcp --
dport 3306 -j DNAT --to-destination 127.0.0.1:3306
iptables -t nat -A POSTROUTING -s 172.18.0.0/16 -o lo -p tcp --dport 3306 -j SNAT --to-source 127.0.0.1
Now my container is avaiable to connect to localhost port 3306(mysql), but mysql see that source ip is "172.18.1.1" and not "127.0.0.1"... This means that "-j SNAT --to-source 127.0.0.1" doesn't work...
How can I do to replace source ip "172.18.1.1" with 127.0.0.1 into loopback interface?
P.S. I DON'T WANT USE "docker run --net=host..." AND I DON'T WANT ADD THE FOLLOW USER INTO MYSQL:
CREATE USER 'dockeruser'@'172.18.1.1' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON `mydb`.* TO 'dockeruser'@'172.18.1.1'
FLUSH PRIVILEGES
mysql iptables docker
New contributor
POSTROUTING
should be namedPOSTROUTING-OUTGOING
, because it normally doesn't catch the packets that go throughINPUT
and are consumed locally.
– kubanczyk
Apr 7 at 23:04
add a comment |
I created a docker network with follow code:
docker network create --subnet=172.18.0.0/16 dockernet
After run a my docker container with:
docker run -d --net=dockernet --ip 172.18.1.1 --name mycontainer mycontainer
Now my container run with 172.18.1.1 ip inside dockernet network, and with ifconfig I see that my host ip is 172.18.0.1.
After i run these commands:
sysctl -w net.ipv4.conf.dockernet.route_localnet=1
iptables -t nat -A PREROUTING -i dockernet -d 172.18.0.1 -p tcp --
dport 3306 -j DNAT --to-destination 127.0.0.1:3306
iptables -t nat -A POSTROUTING -s 172.18.0.0/16 -o lo -p tcp --dport 3306 -j SNAT --to-source 127.0.0.1
Now my container is avaiable to connect to localhost port 3306(mysql), but mysql see that source ip is "172.18.1.1" and not "127.0.0.1"... This means that "-j SNAT --to-source 127.0.0.1" doesn't work...
How can I do to replace source ip "172.18.1.1" with 127.0.0.1 into loopback interface?
P.S. I DON'T WANT USE "docker run --net=host..." AND I DON'T WANT ADD THE FOLLOW USER INTO MYSQL:
CREATE USER 'dockeruser'@'172.18.1.1' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON `mydb`.* TO 'dockeruser'@'172.18.1.1'
FLUSH PRIVILEGES
mysql iptables docker
New contributor
I created a docker network with follow code:
docker network create --subnet=172.18.0.0/16 dockernet
After run a my docker container with:
docker run -d --net=dockernet --ip 172.18.1.1 --name mycontainer mycontainer
Now my container run with 172.18.1.1 ip inside dockernet network, and with ifconfig I see that my host ip is 172.18.0.1.
After i run these commands:
sysctl -w net.ipv4.conf.dockernet.route_localnet=1
iptables -t nat -A PREROUTING -i dockernet -d 172.18.0.1 -p tcp --
dport 3306 -j DNAT --to-destination 127.0.0.1:3306
iptables -t nat -A POSTROUTING -s 172.18.0.0/16 -o lo -p tcp --dport 3306 -j SNAT --to-source 127.0.0.1
Now my container is avaiable to connect to localhost port 3306(mysql), but mysql see that source ip is "172.18.1.1" and not "127.0.0.1"... This means that "-j SNAT --to-source 127.0.0.1" doesn't work...
How can I do to replace source ip "172.18.1.1" with 127.0.0.1 into loopback interface?
P.S. I DON'T WANT USE "docker run --net=host..." AND I DON'T WANT ADD THE FOLLOW USER INTO MYSQL:
CREATE USER 'dockeruser'@'172.18.1.1' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON `mydb`.* TO 'dockeruser'@'172.18.1.1'
FLUSH PRIVILEGES
mysql iptables docker
mysql iptables docker
New contributor
New contributor
edited Apr 7 at 22:15
Davide
31
31
New contributor
asked Apr 7 at 14:57
DavideDavide
11
11
New contributor
New contributor
POSTROUTING
should be namedPOSTROUTING-OUTGOING
, because it normally doesn't catch the packets that go throughINPUT
and are consumed locally.
– kubanczyk
Apr 7 at 23:04
add a comment |
POSTROUTING
should be namedPOSTROUTING-OUTGOING
, because it normally doesn't catch the packets that go throughINPUT
and are consumed locally.
– kubanczyk
Apr 7 at 23:04
POSTROUTING
should be named POSTROUTING-OUTGOING
, because it normally doesn't catch the packets that go through INPUT
and are consumed locally.– kubanczyk
Apr 7 at 23:04
POSTROUTING
should be named POSTROUTING-OUTGOING
, because it normally doesn't catch the packets that go through INPUT
and are consumed locally.– kubanczyk
Apr 7 at 23:04
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Davide is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f961907%2ffrom-docker-network-to-localhost-port-with-snat-iptable%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Davide is a new contributor. Be nice, and check out our Code of Conduct.
Davide is a new contributor. Be nice, and check out our Code of Conduct.
Davide is a new contributor. Be nice, and check out our Code of Conduct.
Davide is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f961907%2ffrom-docker-network-to-localhost-port-with-snat-iptable%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
POSTROUTING
should be namedPOSTROUTING-OUTGOING
, because it normally doesn't catch the packets that go throughINPUT
and are consumed locally.– kubanczyk
Apr 7 at 23:04